我在software_hardware
表中有一个名为activities
的列,该列可以有多个产品输入,这些输入由INVENTORY| POS |
或GPOS | ACCOUNTING |
这样的管道分隔。
我有这样的疑问:
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 '%[input product name here]%'
,因为如果我选择POS
,这将返回包含GPOS
和POS
的结果。如果我选择了
GPOS
,如何修复此查询使其不显示POS
?另外,我知道MySQL的问题。这是我所在公司的用途,所以我现在别无选择。
最佳答案
您可以使用REGEXP
:
a.software_hardware REGEXP '[[:<:]]" . $arr[$i] . "[[:>:]]'
[[:<:]]
和[[:>:]]
标记代表单词边界。因此POS
不能与GPOS
匹配,因为开头没有单词边界。注意,如果有前导或尾随空格,则需要
trim($arr[$i])
。
关于php - 选择行包含字符串的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504748/