正则表达式:Postgres SQL查询将返回表中所有可用的记录

正则表达式:Postgres SQL查询将返回表中所有可用的记录,sql,regex,postgresql,Sql,Regex,Postgresql,下面的Postgres SQL查询将返回表中的所有可用记录。 有人能解释一下吗。 另外,请让我知道*在postgres正则表达式中代表什么 Employee table contains : name Chennai Delhi Hydrabad NewYark ABC select * from employee where name ~ 'Z*' 这是查找以“Z”开头的名称的正确查询: SELECT record FROM myrecords WHERE name ~ '^Z'; 在

下面的Postgres SQL查询将返回表中的所有可用记录。 有人能解释一下吗。 另外,请让我知道*在postgres正则表达式中代表什么

Employee table contains :

name
Chennai
Delhi
Hydrabad
NewYark
ABC

select * from employee where name ~ 'Z*'

这是查找以“Z”开头的名称的正确查询:

SELECT record FROM myrecords WHERE name ~ '^Z';
在您的查询中:

select * from employee where name ~ 'Z*'
其含义是名称匹配零个或多个字符“Z”序列,因此返回所有记录

  • 匹配条件中的
    *
    表示零次或多次出现

  • *
    与tilda一起表示不区分大小写的匹配,即~*'Z'将同时匹配“Z”和“Z”

有关更多信息,请查看此处:


这是查找以“Z”开头的名称的正确查询:

SELECT record FROM myrecords WHERE name ~ '^Z';
在您的查询中:

select * from employee where name ~ 'Z*'
其含义是名称匹配零个或多个字符“Z”序列,因此返回所有记录

  • 匹配条件中的
    *
    表示零次或多次出现

  • *
    与tilda一起表示不区分大小写的匹配,即~*'Z'将同时匹配“Z”和“Z”

有关更多信息,请查看此处:


量词
*
表示零或更多。由于每个名称至少包含零个
Z
字符,因此将返回每一行

您不需要使用正则表达式来查找以字符开头的字符串,只需像使用一样使用

SELECT record FROM myrecords WHERE name LIKE 'Z%';
如果要使用正则表达式以Z开头的名称,请尝试以下操作:

SELECT record FROM myrecords WHERE name ~ '^Z';
如果希望名称至少包含一个Z,请尝试以下操作之一:

SELECT record FROM myrecords WHERE name LIKE '%Z%';
SELECT record FROM myrecords WHERE name ~ 'Z';

*
量词表示零或更多。由于每个名称至少包含零个
Z
字符,因此将返回每一行

您不需要使用正则表达式来查找以字符开头的字符串,只需像使用
一样使用

SELECT record FROM myrecords WHERE name LIKE 'Z%';
如果要使用正则表达式以Z开头的名称,请尝试以下操作:

SELECT record FROM myrecords WHERE name ~ '^Z';
如果希望名称至少包含一个Z,请尝试以下操作之一:

SELECT record FROM myrecords WHERE name LIKE '%Z%';
SELECT record FROM myrecords WHERE name ~ 'Z';

只是为了使示例完整:要获取名称以Z开头的所有行,不需要正则表达式
where name,比如'Z%'
会做同样的事情,只是为了使示例完整:要获取名称以Z开头的所有行,不需要正则表达式
其中的名称(如“Z%”)也会做同样的事情Z后面的星表示0或更多的Z(字符串中的某个位置)。因此,正则表达式引擎选择0 Z并匹配每个字符串。Z后的星号表示0或更多Z(字符串中的某个位置)。所以正则表达式引擎选择0 Z,它匹配每一个字符串。@araqnid:想象一下我拍额头的情景。有趣的是,过度思考正则表达式是多么容易。谢谢你提醒我:)@araqnid:想象一下我拍额头的样子。有趣的是,过度思考正则表达式是多么容易。谢谢你的提醒:)