php - 选择行包含字符串的位置

原文 标签 php mysql

我在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上。现在我的问题是,如果我有POSGPOS,我意识到我不能使用LIKE '%[input product name here]%',因为如果我选择POS,这将返回包含GPOSPOS的结果。
如果我选择了GPOS,如何修复此查询使其不显示POS
另外,我知道MySQL的问题。这是我所在公司的用途,所以我现在别无选择。

最佳答案

您可以使用REGEXP

a.software_hardware REGEXP '[[:<:]]" . $arr[$i] . "[[:>:]]'

[[:<:]][[:>:]]标记代表单词边界。因此POS不能与GPOS匹配,因为开头没有单词边界。
注意,如果有前导或尾随空格,则需要trim($arr[$i])

关于php - 选择行包含字符串的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504748/

相关文章:

php - 在网页中显示本地IP

java - 如何处理与主INSERT相关的辅助INSERT

mysql - 我需要在数据库中将域名存储为md5模式吗?

mysql - sql用于根据其他列值将数据插入到列中

php fsockopen 如何知道连接是否有效

php - MySQL服务器已在macOS High Sierra中消失

php - php 的 CURLOPT_USERPWD 有什么作用

php - 如何测试 Laravel Socialite

php - 从HTML表单解析CSV并插入MYSQL数据库

MySQL & hibernate : performance of left outer join vs multiple selects