我有一個MySQL表像這樣MySQL查詢使用正則表達式
restaurant_id restaurant_name restaurant_serving_cuisines
1 Vasantha Bhavan 4,5,6
3 Little India 7,5,6
5 Mohan Restaurants 16,2,4,1,5,3,6
6 Sri Restaurant 34,16,21,2,23,38,30,7,25,9
13 The Taco Shop 5
22 KFC 15
37 belargio 14,15,16,2,7,4,1,5,17,12,3,13,6
56 Pizza Hot 5
我需要這與5 我需要得到餐廳,belargio服務於美食ID餐廳。
我寫查詢
SELECT restaurant_id, restaurant_name,restaurant_serving_cuisines
FROM `rt_restaurant`
WHERE restaurant_serving_cuisines REGEXP concat_ws("|", "5", "15");
,但我不能得到確切的結果。
如果你有一個包含逗號列 - 你應該檢查你的數據模型的東西。 restaurant_serving_cuisines應該去一個單獨的表,並且根本不需要正則表達式。 –
regexp可能是矯枉過正。查看'LIKE'函數或'FIND_IN_SET'。 (除了矯枉過正之外,你的例子中的逗號分隔值不是按照指定的順序排列的,你至少需要保證正則表達式的工作順序) – AgRizzo
你好,我強烈建議你'NORMALIZE' restaurant_serving_cuisines列。正常化可以幫助你,當你做COUNT,MAX,MIN,SORT,插入新的美食,更新,刪除等... –