php - mysql中的分隔符搜索

标签 php mysql

在我的数据库中,我的行中有一列称为盐。盐列有不同的条目 a+b+c , b+a+c , a+c+b ....

我想做的是..我尝试搜索具有 a+b+c 的盐,而不管字母的出现..

示例:即使我搜索 a+b+c,我也应该得到 b+a+c 和 a+c+b 作为它们的输出..

尝试过的简单 sql SELECT 命令是:

$salt = "a+b+c";
select * from tableName where salt = '$salt';

从上面的查询中,我只得到条目为 a+b+c 而不是 b+a+c 或 c+a+b..etc 的行

最佳答案

如果你只是追求那些组合,你可以试试这个:

SELECT * FROM tableName 
WHERE 
  (salt LIKE '%a+b+c%' OR
  salt LIKE '%a+c+b%' OR
  salt LIKE '%b+a+c%' OR
  salt LIKE '%b+c+a%' OR
  salt LIKE '%c+b+a%' OR
  salt LIKE '%c+a+b%')

或者如果您需要不区分大小写的匹配,

SELECT * FROM tableName 
WHERE 
  (LCASE(salt) LIKE '%a+b+c%' OR
  LCASE(salt) LIKE '%a+c+b%' OR
  LCASE(salt) LIKE '%b+a+c%' OR
  LCASE(salt) LIKE '%b+c+a%' OR
  LCASE(salt) LIKE '%c+b+a%' OR
  LCASE(salt) LIKE '%c+a+b%')

这应该可行,尽管性能可能不是很好。

关于php - mysql中的分隔符搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26832284/

相关文章:

php - MySql select by score desc - 当有多个总分时....奇怪

php - 在 PHP 程序中添加条形图/图形库

mysql - 无需插入即可在数据库中获取最后一个 ID 的有效方法?

php - 在 PHP MySQL 中每 30 分钟在表中插入空行以分隔时间

mysql - 最好的方法,将更改和未更改的值存储到 MySql 数据库中

MySQL:如何检索符合间接条件的记录?

php - 如何防止文件被删除

php - 仅从所有查询文件中调用特定查询

php - 用输入框更新MySQL -- PHP MYSQL HTML

javascript - 在新窗口中 jquery 函数不起作用