MySQL名称就像数组的一部分

时间:2015-07-29 11:40:35

标签: mysql mysqli

我有一个值“柏林,巴黎,伦敦,......”,我想做一个MySQL查询

SELECT * FROM restaurants 
WHERE restaurant_city LIKE '%array%';

要获得所有城市包含柏林或巴黎或伦敦的餐馆

我怎么能意识到这一点?

5 个答案:

答案 0 :(得分:2)

如果在mysql中我们可以做到

SELECT * from restaurants where restaurant_city REGEXP 'Berlin|Paris|London';

使用“|”内爆给定数组然后在查询中使用此生成的字符串(在PHP中)。

$comma_separated = implode("|", $array);

在查询中使用逗号分隔的字符串

答案 1 :(得分:1)

做一个反向技巧。

SELECT * FROM restaurants WHERE 'array' LIKE concat('%',restaurant_city,'%')

所以查询将如下:

SELECT * FROM Table1 WHERE 'Berlin, Paris, London' LIKE concat('%',restaurant_city,'%')

SQL Fiddle

中的示例

答案 2 :(得分:1)

最简单的方式:

这很好用。

 SELECT * FROM restaurants WHERE 
 restaurant_city LIKE '%Berlin%' OR 
 restaurant_city  LIKE '%Paris%' OR 
 restaurant_city  LIKE '%London%';

否则,你可以像Raging Bull提到的那样做。

参见本地样本测试。

enter image description here

答案 3 :(得分:0)

试试这个

 SELECT * FROM restaurants WHERE ( restaurant_city LIKE '%Berlin%' OR  restaurant_city LIKE '%London%')

处理我的案子......

答案 4 :(得分:-2)

试一试 -

SELECT * FROM restaurants 
WHERE find_in_set (restaurant_city,'Berlin,Paris,London');