gpt4 book ai didi

MySql 不像正则表达式?

转载 作者:IT老高 更新时间:2023-10-28 23:59:27 24 4
gpt4 key购买 nike

我正在尝试查找第一个字符不是数字的行。我有这个:

SELECT DISTINCT(action) FROM actions 
WHERE qkey = 140 AND action NOT REGEXP '^[:digit:]$';

但是,我不确定如何确保它只检查第一个字符...

最佳答案

首先,您的查询中有一个小错误。应该是:

NOT REGEXP '^[[:digit:]]'

注意双方括号。您也可以将其重写为以下内容,以避免同时匹配空字符串:

REGEXP '^[^[:digit:]]'

另请注意,使用 REGEXP 会阻止使用索引,并将导致表扫描或索引扫描。如果你想要一个更高效的查询,你应该尝试在不使用 REGEXP 的情况下重写查询,如果可能的话:

SELECT DISTINCT(action) FROM actions 
WHERE qkey = 140 AND action < '0'
UNION ALL
SELECT DISTINCT(action) FROM actions
WHERE qkey = 140 AND action >= ':'

然后在(qkey, action)上添加索引。阅读起来不是那么愉快,但它应该提供更好的性能。如果您对每个 qkey 只有少量操作,那么它可能不会带来任何明显的性能提升,因此您可以坚持使用更简单的查询。

关于MySql 不像正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2579491/

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