mysql选择其中列等于字符串的一部分

lskq00tm  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(303)

我想弄清楚是否有这样的问题:
表列值:

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 正在尝试将字符串的每个部分与数据库表列行匹配。

r9f1avp5

r9f1avp51#

对于gordon的答案稍加修改,我们可以尝试使用 REGEXP 这里有适当的词界:

SELECT t.*
FROM yourTable t
WHERE
    'Jantje ging harken op het strand omdat hij daar zin in had.'
    REGEXP CONCAT('[[:<:]]', t.value, '[[:>:]]');
vvppvyoh

vvppvyoh2#

我想你想要 LIKE 按其他顺序:

SELECT t.*
FROM table t
WHERE 'Jantje ging harken op het strand omdat hij daar zin in had.' LIKE CONCAT('%', t.value, '%')
f4t66c6m

f4t66c6m3#

另一种可能是使用 Locate() 功能。它可能比使用 Like %..% . 我们只需检查输入字符串值中第一次出现的字段(列)值(子字符串)。如果存在,我们已找到匹配项:

SELECT *
FROM your_table_name 
WHERE LOCATE(value, 'Jantje ging harken op het strand omdat hij daar zin in had.') > 0

相关问题