如何 return 行,其中一列中的文本值是 MySQL 中另一列中文本值的一部分?
How to return rows where text value in one column is part of text value in the other column in MySQL?
我有以下格式的数据集:
dish | fruit
--------- +------
Orange Pie | Orange
Stew Soup | Apple
Pear Cream | Pear
Wine Drink | Grapes
Plum Dessert| Plum
我想检查所有行,并且只检查 return 水果名称是菜名一部分的行。
我一直在尝试以下查询的不同变体,但它要么不起作用,要么无法完成工作:
SELECT *
FROM schema.table
WHERE fruit LIKE (CONCAT('%',dish,'%'))
;
我真的很感激在这方面的帮助。提前致谢!
你想要 LIKE
的操作数反过来:
SELECT *
FROM schema.table
WHERE dish LIKE CONCAT('%', fruit, '%')
请注意 CONCAT()
两边的括号是不需要的。
SELECT *
FROM schema.table
WHERE LOCATE(fruit, dish)
取决于所需的大小写依赖性,您可能需要指定 COLLATION。
我有以下格式的数据集:
dish | fruit
--------- +------
Orange Pie | Orange
Stew Soup | Apple
Pear Cream | Pear
Wine Drink | Grapes
Plum Dessert| Plum
我想检查所有行,并且只检查 return 水果名称是菜名一部分的行。
我一直在尝试以下查询的不同变体,但它要么不起作用,要么无法完成工作:
SELECT *
FROM schema.table
WHERE fruit LIKE (CONCAT('%',dish,'%'))
;
我真的很感激在这方面的帮助。提前致谢!
你想要 LIKE
的操作数反过来:
SELECT *
FROM schema.table
WHERE dish LIKE CONCAT('%', fruit, '%')
请注意 CONCAT()
两边的括号是不需要的。
SELECT *
FROM schema.table
WHERE LOCATE(fruit, dish)
取决于所需的大小写依赖性,您可能需要指定 COLLATION。