我需要选择所有不是以1-9之间的数字开头的条目。
示例条目:
- 狗巷6300号
- 基蒂大道
- 500只小鸟
- 轮胎路800号
- Json大街
- 公园大道
因此,如果我对上面的内容进行查询,我会期望: - 基蒂大道
- Json大街
- 公园大道
表名为objects
,列名为location
。
我尝试过的:
SELECT DISTINCT name, location FROM object WHERE location NOT LIKE '1%' OR '2%' OR '3%' OR '4%' OR '5%' OR '6%' OR '7%' OR '8%' OR '9%';
不幸的是,这是不成功的。如果这是不可能的,请让我知道,我将诉诸于修改数据与Perl。
谢谢您
6条答案
按热度按时间cs7cruho1#
试试看:
或者你必须在每个数字前加上
NOT LIKE
:7y4bm7vi2#
您可以使用下列stntax:
tvz2xvvm3#
试试这个,它更简单:
e5nszbig4#
您“尝试”的内容需要使用
AND
而不是OR
。此外,DISTINCT
也是不必要的。如果您有
这可能比其他任何答案都要快:
此技术仅适用于连续范围的首字母,如
1..9
。一个有点相关的问题:Should I perform regex filtering in MySQL or PHP?--它询问是否提取以1..9开头的行,而不是相反的行。
ax6ht2ek5#
对于sql server,请尝试以下操作:
fdbelqdn6#
ISNUMERIC
应该可以工作。(也将排除0)。示例代码-