2012-11-03 46 views
-2

分隔我有這樣的:PHP和MySQL選擇用逗號

$string = "battery,lighter,phone"; 

我有一個表users有每個用戶的標籤。

怎麼可能select使用sql where tags = $stringwhere email = '$usermail';

我只是想找回基於user emailuser stored tags由逗號表中分離出來像上面的字符串數據

+0

您可以比較where子句中使用逗號sepreaded – Hkachhia

+0

請告訴我,標籤進入像'電池,光,電話多個字段''或''電池'和其他'用戶'表中的每個用戶。所以我可以提供解決方案.. :) –

+0

我有多個標籤爲每個用戶,所以基本上我想用用戶的電子郵件來選擇所有用戶的值,我會用「while」來回顯所有用戶保存的標籤名稱原始標籤。任何幫助?存儲在原始標籤中的值由逗號分隔:鞋子,打火機,褲子,閃光燈等 –

回答

0

如果你只選擇了一個標籤,你可以使用

select bits where tag like '%select_value' and email = 'email_value' 

如果你需要挑選出你需要解析出csv的多個標籤。這是一個更大的挑戰。

+0

我有一個以上的標籤爲每個用戶, –

+0

我有一個以上的標籤爲每個用戶,所以基本上我想用用戶的電子郵件來選擇所有用戶的值,我會用「while」來回顯所有用戶的保存標籤名稱原始標籤。任何幫助?存儲在原始標籤中的值通過逗號分隔:鞋子,打火機,褲子,閃光燈等 –

+0

我感到困惑 - 您是否嘗試選擇具有特定標籤的用戶或僅獲取特定用戶的標籤? – ethrbunny

0

答案更新:鑑於在別人的評論中列出的表:

SELECT p.id, p.p_title, p.categoryname, u.id, u.user_email, u.my_choices 
    FROM users u 
    JOIN products p 
    ON FIND_IN_SET(p.categoryname, u.my_choices) 
WHERE u.email = 'email_value' 

MySQL有可能會滿足您的目的FIND_IN_SET()功能。在這種特殊情況下,所有在用戶的'my_choices'中都有'categoryname'的產品將被退回。

讓我知道這對你的作品,

約翰。