gpt4 book ai didi

mysql 详细查询字符串,如通配符

转载 作者:行者123 更新时间:2023-11-29 01:32:53 24 4
gpt4 key购买 nike

不确定如何为我的问题命名...大声笑。

下面是我需要的。


我的数据库中的值如下所示:test_example-1、test_example-2、test_example-TD-1

值的长度可以不同,“test_example-”只是一个例子,一些值会有不同的名称。

当我执行查询以获取所有看起来像“test_example-”的值时,我得到了所有内容,因为我以这种方式使用通配符值“test_example-%”。但是,我不希望结果中出现“test_example-TD-1”。我只想要非 TD 值。那么,我怎样才能得到所有的“test_example-”而不得到在“-”之后不仅仅是一位整数的东西。

数据库中的值在“-”之后不会超过一个数字 (0-9)。所以基本上我需要一个查询来搜索看起来像这样的值“test_example-[0-9]”。

我该怎么做?如果这令人困惑并且需要澄清,请告诉我。谢谢!


这是我正在做的确切查询,以减轻一些混淆:

SELECT MAC, NAME FROM HOST WHERE NAME LIKE (SELECT CONCAT(LEFT(NAME, LENGTH(NAME)-1), "%") FROM HOST WHERE MAC="some mac address");

这是工作结果(感谢 swati):

SELECT MAC, NAME FROM HOST WHERE NAME REGEXP CONCAT(LEFT(NAME, LENGTH(NAME)-1), "[0-9]+") AND MAC="some mac address";

最佳答案

SELECT * FROM `foo` WHERE `value` REGEXP "test_example-[:digit:]+"

这应该适用于 test_example-[0-9]。更多关于 Character Classes and REGEXP

对于您给定的查询,它将是:

SELECT MAC, NAME FROM HOST WHERE NAME REGEXP CONCAT(LEFT(NAME, LENGTH(NAME)-1), "[0-9]+") AND MAC="some mac address"

请注意,您发布的查询中存在错误 - 您有两个 WHERE 子句。

关于mysql 详细查询字符串,如通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6036207/

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