Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择行包含字符串的位置_Php_Mysql - Fatal编程技术网

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