我有一张包含零售商店信息的表格。我有一个零售链式名称列表(WalMart、Target、Eatons 等...)当用户选择一个时,我基本上会运行一个查询来查找与该链式店有关的任何内容。

SELECT * FROM stores WHERE store_name LIKE '%$chain%' ORDER BY store_name ASC

例如,如果用户选择“WalMart”,则查询将返回名称中包含“WalMart”一词的任何内容(WalMart Scarborough、WalMart Supercenter Toronto、WalMart Distribution Center 等)。

但现在我想让用户能够通过搜索文本框搜索这个列表。我通常进行搜索的方式是这样的:
SELECT * FROM stores WHERE store_name LIKE '%$user_input%' ORDER BY store_name ASC

但在这种情况下,查询将返回包含 user_input 的所有商店,而不仅仅是 WalMarts。如果我在多伦多打字,我希望看到 WalMart Supercenter Toronto,但当然会得到 Target Toronto 等......

我怎样才能做到这一点,以便我寻找任何包含 user_input 但也只在 WalMart 子集中的东西。如果可能,我想在单个查询中执行此操作。我可以像这样使用两个 LIKE 语句吗?

抱歉,还没有尝试任何东西,因为我不知道从哪里开始。

最佳答案

是的,您可以执行以下操作:

SELECT * FROM stores WHERE store_name LIKE '%$user_input%'
AND store_name LIKE '%Walmart%'
ORDER BY store_name ASC

关于sql - SQL 中的多个 LIKE 语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20806361/

10-13 08:14