2011-05-19 113 views
4

嗨 我想知道如何比較與其他用戶高度 的高度,這裏是我的查詢如何比較高的值

select * from tbl_Member where height between 3'8'' and 7'0''; 

這裏高度其它用戶高度 PLZ告訴我正確的查詢

+1

什麼是你的高度欄的數據類型?將其存儲在單位而不是文本 – JohnP 2011-05-19 06:47:53

+2

這就是爲什麼您將所有內容都轉換爲像第一個釐米一樣穩健的值:-P – deceze 2011-05-19 06:49:27

+0

您的查詢字符串中不能有未轉義的引號。然後提供樣本數據,然後詢問您想要執行的操作 – codeomnitrix 2011-05-19 06:51:35

回答

0

我知道這是骯髒的,但在這裏,你去

select * 
from tbl_Member 
where 
    concat(format(left(height, 1), 0), lpad(format(substr(height,3,2), 0), 2, '0')) 
    between 308 and 700 

3'8「」變爲308 7'12「」數據庫將需要大量的變成712個

0

由於單引號字符表示字符串的開頭或結尾,因此您必須轉義varchar字符串中的單引號:

SELECT * 
FROM tbl_Member 
WHERE height BETWEEN '3\'8\'\'' AND '7\'0\'\'' 
4

3'8''7'0''比較值解析每個查詢並且相當慢。以類似的方式將數值存儲在數據庫中,在這種情況下,這意味着一個INT列,其值以釐米爲單位存儲。在其上添加索引以使查詢更快。然後只轉換爲英寸顯示。

+1

甚至英寸如果你會(但不是英尺+英寸),但你會更好地使用公制系統:) – 2011-05-19 07:31:39