mysql - 如何仅选择列中具有 float 且不为空的记录(MYSQL)

标签 mysql

在我的数据表中,我有以下字段纬度值 -

20.235412,20.125412,null,mg road 542365,20.236541,null,ahemdabad 254156,

根据上面的值,我想要第一个、第二个和第五个,所以我尝试了这个查询 -

SELECT com_name,lat,lng,alias FROM company_details WHERE lat IS NOT NULL AND TRIM(lat) <> '' AND IsNumeric(lat) = 1

还有这个

SELECT com_name,lat,lng,alias FROM company_details WHERE lat IS NOT NULL AND TRIM(lat) <> '' AND not lat like '%[^0-9]%'

但它不起作用。请帮助我。

最佳答案

看看REGEXP功能-

SELECT '20.235412' REGEXP '^[0-9]+[.]{1}[0-9]+$';
=> 1

SELECT 'mg road 542365' REGEXP '^[0-9]+[.]{1}[0-9]+$';
=> 0

所以,尝试这样的事情 -

SELECT
  com_name, lat, lng, alias
FROM
  company_details
WHERE lat REGEXP '^[0-9]+[.]{1}[0-9]+$';

关于mysql - 如何仅选择列中具有 float 且不为空的记录(MYSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32515768/

相关文章:

mysql - 使用 MySQL View 检索运行总计

php - 使用 PHP 显示从 MySQL 数据库检索的数据时出现问题

java - 未知主机异常 : while connecting to database server

php - Magento 中保存 "Special Price"的表在哪里?

mysql - mysql导入70GB海量表,mysqlimport完成后长时间不可用

MySQL错误6400(42000)检查手册对应你的Mysql服务器版本

PHP For 循环与 Mysqli 的问题

java - 使用一个提交按钮将记录从一个表单提交到多个 SQL 表

sql - 仅从同一用户中选择最多 3 行 - MySQL

mysql - SQL ZOO 按字母顺序列出每个大洲和国家名称