2011-01-08 160 views
0
id categories ext_categories 
2  36  17,250 
8  20  28 
10  17  18 

如果查詢categories = 17我能得到這樣sql查詢問題

id 
2 (ext_categories field) 
10 

如何查詢ext_categoriesid: 2

謝謝你的結果!

+0

如果你想簡單地獲取ID = 2 ext_category然後嘗試「從表中選擇ext_categories其中id = 2」 – 2011-01-08 07:37:33

+0

不要把多個值到一個列!這違反了數據庫設計的第一種正常形式 - 這是一個很大的禁忌。它也試圖處理這種數據時創建各種凌亂的代碼....只是**不要**這樣做! – 2011-01-08 08:54:44

回答

1

ext_categories是如何實現的?例如,您使用的一個varchar場和管道分隔的字符串(數字)的值與嚴格的格式

|n|... 

,使您的表看起來像

id categories ext_categories 
2  36  "|17|250|" 
8  20  "|28|" 
10  17  "|18|" 

呢?

如果是這樣,嘗試

select * from table where categories = 17 OR ext_categories like '%|250|%' 
0

你在找組?

select id,ext_categories From YOURTABLENAME group by id,ext_categories 
+0

我想我已經迷失了你對你問題的最新更新,我的答案目前無效,請解釋更多 – 2011-01-08 07:38:31

0

想在結果中包含ext_categories?或者您希望根據ext_categories的ID從外部表中獲取字段?

如果以後;

$sql = "SELECT * FROM table WHERE categories = 17 OR ext_categories =17 LEFT JOIN ext_category_table on ext_category_table.ext_category = ext_categories" 
+0

更新,它只有1表 – love 2011-01-08 07:49:58