我有一个值“柏林,巴黎,伦敦,......”,我想做一个MySQL查询
SELECT * FROM restaurants
WHERE restaurant_city LIKE '%array%';
要获得所有城市包含柏林或巴黎或伦敦的餐馆
我怎么能意识到这一点?
答案 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,'%')
中的示例
答案 2 :(得分:1)
最简单的方式:
这很好用。
SELECT * FROM restaurants WHERE
restaurant_city LIKE '%Berlin%' OR
restaurant_city LIKE '%Paris%' OR
restaurant_city LIKE '%London%';
否则,你可以像Raging Bull提到的那样做。
参见本地样本测试。
答案 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');