gpt4 book ai didi

mysql - 如何在一条语句中使用 'and' 'or' 的 MySQL 正则表达式

转载 作者:可可西里 更新时间:2023-11-01 08:46:06 25 4
gpt4 key购买 nike

我正在使用 MySQL 5.x,并尝试使用 SQL 语句根据以下数据集选择行

ID | Type           | Name
1 | Silver | Customer A
2 | Golden | Customer B
3 | Silver, Golden | Customer C
4 | Bronze, Silver | Customer D

我需要在SQL语句中使用regexp(Legacy system reasons),这里我只需要选择ID=1和ID=4,也就是说我需要“Silver”,“Silver with Bronze”客户类型,但不需要“银+金”

我对正则表达式不太熟悉,一直在尝试使用如下 SQL:

SELECT DISTINCT `customer_type` FROM `customers` WHERE 
`customer_type` regexp
"(Silver.*)(^[Golden].*)"

我需要像上面一样在一个地方使用正则表达式,但不像下面这样:

SELECT DISTINCT `customer_type` FROM `customers` WHERE 
`customer_type` regexp
"(Silver.*)"
AND NOT
customer_type` regexp
"(Golden.*)"

虽然LIKE可以用,但是因为特殊原因不能用。

SELECT DISTINCT `customer_type` FROM `customers` WHERE 
`customer_type` LIKE "%Silver%"
AND NOT
customer_type` LIKE "%Golden%"

我无法让第一个 SQL 语句起作用,而且不确定是否可行。

最佳答案

试试这些:

SELECT DISTINCT `id`, `customer_type` 
FROM `customers`
WHERE `customer_type` regexp "^.*Silver$"

这匹配“anything + Silver”或仅匹配 Silver。

关于mysql - 如何在一条语句中使用 'and' 'or' 的 MySQL 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28043123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com