database 如何查询某个字段以某个字母开头的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了database 如何查询某个字段以某个字母开头的数据相关的知识,希望对你有一定的参考价值。

问题中的代码如何修改,请看图片中的题,别一味的复制,我知道可以用like 'Y%',我用的就是like 'Y%',但是报错未使用预期的where,意思是不允许用这个方法,所以有其他方法吗

可以用模糊查询,也可以用正则表达式查询

模糊查询:

select * from 表 where 字段 like 'Y%';

正则表达式查询:

select * from 表 where 字段 regexp '^Y'

追问

不看图片的题吗。。。

参考技术A SEL * FROM DRIVER WHERE LICENSENO LIKE 'Y%';追问

呃。。。不看图片的题吗?我写的就是where licenseNo like 'Y%',但是报错了,所以我问有其他的解的方式吗

参考技术B select * from 表名 where left(字段名,1)= 'Y',无聊发现你这个问题,顺便回答下

使用正则表达式匹配不以某个字母开头的单词

【中文标题】使用正则表达式匹配不以某个字母开头的单词【英文标题】:Match words that don't start with a certain letter using regex 【发布时间】:2018-10-26 17:18:57 【问题描述】:

我正在学习正则表达式,但无法在 python 中找到正确的正则表达式来选择以特定字母开头的字符。

以下示例

text='this is a test'
match=re.findall('(?!t)\w*',text)

# match returns
['his', '', 'is', '', 'a', '', 'est', '']

match=re.findall('[^t]\w+',text)

# match
['his', ' is', ' a', ' test']

预期:['is','a']

【问题讨论】:

试试:regex101.com/r/OzUEO9/1 [i for i in text.split() if i[0] != 't'] 【参考方案1】:

使用正则表达式

使用否定集[^\Wt] 匹配任何不是t 的字母数字字符。为避免匹配单词子集,请在模式的开头添加单词边界元字符 \b

另外,不要忘记您应该为正则表达式模式使用原始字符串。

import re

text = 'this is a test'
match = re.findall(r'\b[^\Wt]\w*', text)

print(match) # prints: ['is', 'a']

查看演示 here。

没有正则表达式

请注意,这也可以在没有正则表达式的情况下实现。

text = 'this is a test'
match = [word for word in text.split() if not word.startswith('t')]

print(match) # prints: ['is', 'a']

【讨论】:

【参考方案2】:

你几乎是在正确的轨道上。你只是忘记了\b(字边界)令牌:

\b(?!t)\w+

Live demo

【讨论】:

谢谢。实际上 match=re.findall(r'\b(?!t)\w+',text) 工作。它正在寻找原始字符串

以上是关于database 如何查询某个字段以某个字母开头的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Firebase 获取名称以某个字符串开头的记录?

php里怎么判断字段里是不是以1开头的字段?

如何在mysql中查询以某个字符开头的表 如何在mysql中查询以某个字符开头的表

根据字段的开头选择记录?

SQL查询以小写字母开头的数据行

如何显示以某个字母开头和结尾的文件名?