首页 > 解决方案 > LIKE 表达式未返回预期结果。问题还是缺乏理解?(可能是后者)

问题描述

使用 LIKE '%[0-9]%' 找到“黄色 2 x 4 盘子”。这是一个简化的示例,我认为它不能正常工作。

具有单列(commandtext、varchar)的表(命令)。命令文本中的单个条目:黄色 2 x 4 板。

SELECT
  *
FROM command
WHERE commandtext LIKE '%[0-9]%'

结果 = 空集。

我希望所有这一切都应该是一个 0-9 之间的数字,周围是其他任何东西。

我显然在这里没有得到任何东西......

标签: postgresql

解决方案


正如您所发现的,您可以使用 SQL 标准SIMILAR TO

... WHERE col SIMILAR TO '%[[:digit:]]%'

您还可以使用 POSIX 正则表达式:

... WHERE col ~ '[[:digit:]]'

推荐阅读