2011-11-18 34 views
0

我得到了一個包含多個字段和大約10000個條目的數據庫。我只需要檢查一個字段中4個不同字符串的外觀。檢查mysql中多個字符串的外觀

實施例:

id--name--sex--color--size--weight--price--points--class-- 
1 pet m white 180 90  120 1000 low 
2 bob m white 180 90  110 2000 high 
3 foo m white 180 90  120 3000 low 
4 boo m white 180 90  140 1000 low 
5 bla m white 180 90  100 2000 medium 
6 blu m white 180 90  120 5000 lala  

基本上有3類,但有時我有一個自定義類。現在我想搜索我的整個DB的低,高和中等的外觀。這可能是因爲沒有一個或多個條目。此外,我需要檢查是否有一個自定義(未知)類。 知道它們是否出現就足夠了,我不需要更多的數據。

我想到的只是查詢字段class,然後用phps in_array()進行搜索,但我想這只是浪費資源。

有人可以幫我在這裏嗎?如何查詢這個聰明而不查詢所有結果?

+0

SQL有[WHERE子句](http://dev.mysql.com/doc/refman/5.0/en/where-optimizations.html)。這應該已經爲你使用SQL查詢。 – hakre

+0

是的,但我不得不做4個查詢,以保持每個關鍵字覆蓋 - 似乎超載。這是唯一的方法嗎? – Anonymous

+1

不,您可以使用邏輯運算符或IN函數來執行一個查詢。另外還有集合函數(GROUP BY)。 – hakre

回答

2

讓我們的數據庫找到類列只不同的值。您的關鍵字是「不同的」。

select DISTINCT class from table; 

無論如何,如果你在意我會推薦讀一些關於數據庫表規範化和改進表設計。

+0

非常好,謝謝,歡迎光臨:) – Anonymous

+0

是的,歡迎光臨!有一個+1值得10代表讓你回來更多。 –

1

你不能簡單地查詢計數,GROUP BY class?這將返回所有類,包括您的自定義類。

SELECT class, COUNT(*) FROM table GROUP BY class; 

或者乾脆DISTINCT class

SELECT DISTINCT class FROM table 
相關問題