我在表 activities
中有一个名为 software_hardware
的列,该列可能有多个产品输入,并由类似 INVENTORY| 的管道分隔开。 POS |
或 GPOS |会计|
。
我有这个查询:
SELECT a.id, a.ticket_number, a.client, a.software_hardware,
a.issues_concern, a.status, a.technical_programmer, a.date_added
FROM activities a
WHERE a.client = '".$_POST['client']."' AND a.software_hardware LIKE '%".$arr[$i]."%'
ORDER BY date_added DESC
$arr =explode("|", $_POST['Soft_hard']);
当我选择客户和产品时,相关信息将显示在 div 上。现在我的问题是,如果我有 POS
和 GPOS
,我意识到我无法使用 LIKE '%[在此处输入产品名称]%'
因为如果我选择 POS
,这将返回包含 POS
和 GPOS
的结果。
如果我选择了 POS
,如何修复此查询以不显示 GPOS
?
最佳答案
您可以使用 REGEXP
:
a.software_hardware REGEXP '[[:<:]]" . $arr[$i] . "[[:>:]]'
[[:<:]]
和[[:>:]]
标记代表单词边界。所以POS
无法匹配GPOS
因为开头不会有单词边界。
请注意,您需要 trim($arr[$i])
如果它有前导或尾随空格。
关于php - 选择包含字符串的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504748/