Определить, является ли значение числом в MySQL - PullRequest
133 голосов
/ 21 февраля 2011

Есть ли способ определить, является ли значение числом в запросе MySQL?Такие как

SELECT * 
FROM myTable 
WHERE isANumber(col1) = true

Ответы [ 14 ]

1 голос
/ 27 июня 2016
SELECT * FROM myTable WHERE sign (col1)!=0

знак конечно (0) равен нулю, но тогда вы можете ограничить свой запрос до ...

SELECT * FROM myTable WHERE sign (col1)!=0 or col1=0

ОБНОВЛЕНИЕ: Это не на 100% надежно, потому что "1abc"вернул бы знак 1, но «ab1c» вернул бы ноль ... так что это может работать только для текста, который не начинается с цифр.

0 голосов
/ 22 апреля 2018

Я обнаружил, что это работает довольно хорошо

if(col1/col1= 1,'number',col1) AS myInfo
0 голосов
/ 19 апреля 2018

Попробуйте разделить / 1

select if(value/1>0 or value=0,'its a number', 'its not a number') from table
0 голосов
/ 31 мая 2017

вы можете сделать, используя CAST

  SELECT * from tbl where col1 = concat(cast(col1 as decimal), "")
...