Php 选择行包含字符串的位置
我在表Php 选择行包含字符串的位置,php,mysql,Php,Mysql,我在表activities中有一个名为software\u hardware的列,该列可以有多个产品输入,这些输入由类似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 activi
activities
中有一个名为software\u hardware
的列,该列可以有多个产品输入,这些输入由类似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
和gpo
,我意识到我不能像“%[input product name here]]”那样使用,
,因为如果我选择POS
,这将返回同时包含POS
和gpo
的结果
如果选择了POS
,如何修复此查询以不显示gpo
另外,我知道MySQL的问题。这是我所在的公司使用的,所以我现在没有选择。您可以使用:
a.software\u hardware REGEXP'[[:::]]
[[[::]]
标记代表单词边界。因此POS
无法匹配gpo
,因为开头没有单词边界
注意:如果有前导或尾随空格,则需要修剪($arr[$i])
。尝试以下操作:
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 UPPER(a.software_hardware) LIKE '%".strtoupper($arr[$i])."%'
ORDER BY a.date_added DESC
使用像“.$arr[$i]。%”这样的软件和硬件。
哦,哇,我不知道我可以在查询中使用regex!非常感谢。
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 UPPER(a.software_hardware) LIKE '%".strtoupper($arr[$i])."%'
ORDER BY a.date_added DESC