2012-10-05 49 views
1

我有一個Mysql查詢。我只想過濾整數結果。 我的查詢是 -從Mysql查詢過濾器整數結果

SELECT * FROM table as p WHERE p.test between 0 AND 999 

但結果來這 -

747 
748 
749 
FO4001 
FO4002 
750 
751 

我想請教兩個東西 -

1)有什麼辦法來排除下面result-

FO4001 
FO4002 

2)爲什麼這些會出現在結果中?

+0

什麼是你正在返回列的類型?串? –

+0

你使用什麼編程語言? –

+0

'test'列是varchar類型,編程是php。 – Irfan

回答

3

試試這個,使用REGEXP來測試值是否都是數字。

SELECT * 
FROM table1 
WHERE x BETWEEN 0 AND 999 
     AND x REGEXP '^[0-9]+$'; 

SQLFiddle Demo

+1

謝謝,這是我需要的。 – Irfan

+0

不客氣:D –

+0

這將適用於正整數,但我相信這不適用於負數或實數(因爲「 - 」和「。」),而且這也不適用於大數字要麼是因爲指數的「e」。 –