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 如何查询某个字段以某个字母开头的数据的主要内容,如果未能解决你的问题,请参考以下文章