我试图在只有确切单词匹配的情况下将表中的单词匹配到字符串,到目前为止,我只能通过使用LIKE
语句获得非常松散的匹配,它匹配大多数内容,但问题是它也匹配我试图避免的部分单词。
并不总是有领先或落后的空间
SQL查询
SELECT GROUP_CONCAT(`keys` SEPARATOR ',')
FROM `table_keys`
WHERE "We Have One Cardboard Train Wheel" LIKE CONCAT('%', `keys`, '%');
table_keys
| keys |
|-----------|
| Car |
| Wheel |
| Roof |
返回两个匹配,即Car, Wheel
,这在技术上是正确的,但我只希望它在整个单词存在的情况下匹配。
电流输出
Car,Wheel
所需输出
Wheel
正则表达式是字符串
CREATE TABLE table_keys ( `keys` VARCHAR(5) ); INSERT INTO table_keys ( `keys`) VALUES ('Car'), ( 'Wheel'), ( 'Roof');
SELECT GROUP_CONCAT(`keys` SEPARATOR ',') AS "keys" FROM `table_keys` WHERE "We Have One Cardboard Train Wheel" regexp CONCAT('(^|[[:space:]])',`keys`,'([[:space:]]|$)')
|键||:----||轮子|
db<gt;小提琴这里