2012-05-01 74 views
4

我有一個有問題的腳本運行,所以我需要選擇所有包含不是直線整數的值的行。我該怎麼做呢? ISSTRING在谷歌搜索,但我從它說錯誤ISSTRING不存在。 :(MySQL語句選擇列不是數字

到目前爲止,我已經糊塗有:

SELECT id, area, city FROM `homes` WHERE ISSTRING(`area`) OR ISSTRING(`city`) 

在沒有任何運氣...

+0

您可以通過正則表達式做到這一點 - 。http://dev.mysql.com/doc/refman/5.1/en/ regexp.html –

+6

請參閱:http://stackoverflow.com/q uestions/75704 /怎麼辦,我檢查到看-IF-A-值是 - 一個整數,在MySQL的。你只需要添加一個'NOT'。 – bfavaretto

+1

如果'area'和'city'應該只是整數類型,那麼改變表格定義以便它只允許整數(即smallint,bigint,int等)。我相信所有非整數值都將被更改爲0。 –

回答

6

正則表達式的作品,但我會做的是檢查是否ABS()等於零和外地不爲零,我認爲這將是比正則表達式快

SELECT id, area, city FROM `homes` WHERE (abs(area) = 0 AND area != '0') OR (abs(city) = 0 AND city != '0') 
+0

但是abs()對小數將做什麼? –

+0

我們在系統上沒有小數,所以它不是問題。 – jeffkee

+0

'abs(area)= 0'明亮而簡單!謝謝 –