2017-07-25 45 views
0

我有一個表,這個樣子 enter image description hereMySQL的搜索字符每

,我想查詢表中尋找該GROUP_CONCAT(product_id SEPARATOR ', ')領域有710

Like語句不工作對我來說很好,因爲它只是表示第一排,尚未出現在第三行,即使它有710,但與它之間8分開..

enter image description here

是有什麼WHERE STATEMENT,我可以用這個?

回答

1

爲什麼要困擾?

試試這個

SELECT * from table where field REGEXP 'abdan|copin|sher'; 
+0

呃好吧,'REGEXP'代碼適用於我。謝謝 –

+0

「abdan | copin | sher''是什麼意思? –

+0

這是你想找到的名字的對象 –

0

你不想where條款,你想有一個having條款:

having sum(product_id = 7) > 0 and 
     sum(product_id = 10) > 0 
+0

它給了我一個空集...這是我的SQL,我與你'having' sugestion運行'SELECT * FROM(SELECT purchase_order_id,GROUP_CONCAT(產品分離器 '')作爲product_ordered from ufi_purchaseorderdetail GROUP BY purchase_order_id)作爲具有sum(product_ordered = 7)> 0和sum(product_ordered = 10)> 0;' –

+0

是否意味着'product_ordered'?因爲我試圖搜索product_ordered字段(請看第二張圖) –

0

您可以使用像'7%10'這種情況。但是,如果字符串序列是10, 8, 7,則必須在查詢中包含'10%7'。我以前遇到類似的情況,但我沒有按照你的方式存儲數據。

這是一個ManyToMany關聯,因此您可以將group_contact存儲在另一個表group(id int primary key, group int not null)中。然後使用第三個表middle_table(order_id int, group_id int)來映射它們。希望爲您提供幫助。