1
處理這種情況的最佳方法是什麼?mysql rbar情況
我正在使用現成的軟件,它將用戶定義的字段名稱作爲一行存儲在數據庫中,而不是將新列添加到表中。它看起來像這樣:
ID fieldName fieldValue propertyId
1 latitude 23.192 id_property1
2 longitude -10.323 id_property1
3 latitude 23.192 id_property2
4 longitude -11.824 id_property2
5 latitude 25.254 id_property3
" "
我需要基於對字段名和fieldValue方法用戶輸入過濾此表,因此,如果用戶輸入字段名=「緯度」和fieldValue方法=「23.192」,它將返回id_property1和id_property2。但是,如果用戶輸入fieldName =「latitude」AND fieldValue =「23.192」AND fieldName =「longitude」AND fieldValue =「 - 10.323」,則只會返回id_property1。
我做了一個在php中使用for循環的方法,但我擔心它會在很多記錄下陷入困境。
謝謝!
這難道不返回任何記錄,因爲是同時包含字段名=「緯度」和字段名=「東經」沒有記錄? – 2010-07-28 14:52:47
納米工作。我需要爲每個需要的條件添加另一個連接嗎?假設我有三個條件。 SELECT p0.propertyId FROM propsTable AS p0 JOIN propsTable AS p1 ON p1.propertyId = p0.propertyId。 propsTable爲P2 ON p2.propertyId = p0.propertyId WHERE p0.fieldName = '緯度' AND p0.fieldValue = 23.192 AND p1.fieldName = '經度' AND p1.fieldValue = -10.323 AND p2.fieldName =」 sq_feet'AND p2.fieldValue> 2000 – 2010-07-28 15:17:25
是的,雖然在那裏有一個'JOIN'關鍵字(就在'propsTable AS p2'之前)。 – bobince 2010-07-28 16:29:29