在我的数据库中,我的行中有一列称为盐。盐列有不同的条目 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/