【问题标题】:COUNT ROWS that ONLY CONTAIN numbers计数仅包含数字的行
【发布时间】:2022-01-14 07:55:42
【问题描述】:

我需要计算表中列名仅包含数字的行数。

名称列是一个文本列,包含以下条目; “我的旅行”“我的 1 号步行路线”和“1234”

我正在使用这个查询:

SELECT name
FROM mytable
WHERE name LIKE '%[0-9]%'

使用上面的示例,我希望仅返回名称 1234,因为它是唯一只包含数字的名称。

但是什么都没有返回?

【问题讨论】:

标签: sql postgresql


【解决方案1】:

Postgres 解决方案:

SELECT COUNT(*)
  FROM my_table
 WHERE name ~ '^[\d]+$'
;

【讨论】:

  • 辛苦了,谢谢!
  • 不客气!
【解决方案2】:

对于 MySQL,MariaDB

SELECT COUNT(*) AS `total` FROM `table` WHERE `column` REGEXP '^[0-9]+$'

参考:https://dev.mysql.com/doc/refman/8.0/en/regexp.html#operator_regexp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-27
    • 2018-12-18
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2013-04-10
    • 2015-08-04
    • 2017-11-22
    相关资源
    最近更新 更多