我正在尝试确定是否对此查询:
表格列值:
harken op het strand
输入字符串:
Jantje ging harken op het strand omdat hij daar zin in had.
结果(1行):id "1", value "harken op het strand";
输入字符串:
Jantje ging met harken het strand op omdat hij daar zin in had.
结果:为空。
我知道它一定是这样的:
SELECT *
FROM table
WHERE value LIKE 'Jantje ging harken op het strand omdat hij daar zin in had.'
LIKE
尝试将字符串的每个部分与数据库表列行进行匹配。
答案 0 :(得分:1)
要稍微修改Gordon的答案,我们可以尝试在此处使用REGEXP
并使用适当的单词边界:
SELECT t.*
FROM yourTable t
WHERE
'Jantje ging harken op het strand omdat hij daar zin in had.'
REGEXP CONCAT('[[:<:]]', t.value, '[[:>:]]');
答案 1 :(得分:0)
我认为您希望以其他顺序LIKE
:
SELECT t.*
FROM table t
WHERE 'Jantje ging harken op het strand omdat hij daar zin in had.' LIKE CONCAT('%', t.value, '%')
答案 2 :(得分:0)
另一种可能性是使用Locate()
函数。与使用Like %..%
相比,它可能更。我们将简单地检查输入字符串值中字段(列)值(子字符串)的首次出现。如果存在,我们已经找到一个匹配项:
SELECT *
FROM your_table_name
WHERE LOCATE(value, 'Jantje ging harken op het strand omdat hij daar zin in had.') > 0