gpt4 book ai didi

Mysql:搜索子字符串并返回其右侧最大#的那个

转载 作者:行者123 更新时间:2023-11-29 23:19:43 25 4
gpt4 key购买 nike

我需要在 mysql 字段中的字符串中搜索子字符串,并返回其右侧的数字(如果它是返回的所有行中的最大数字)。 (该单词很可能在字符串中出现多次。)

SELECT max(cast(substring(mq.my_query_string, (locate("near/", mq.my_query_string)+5), 2) as signed)) AS "MaxNearDistance" 
FROM my_query mq, my_test mt
WHERE mt.company_id = 123
AND mq.search_query_id = mt.my_query_id
AND locate("near/", mq.my_query_string) > 0;

这可行,但它只给我第一个子字符串和返回的所有行中的最高编号。我需要子字符串和所有行的所有命中中的最高数字。

感谢您的帮助!

最佳答案

我将创建一个表 - 数字 - 包含我希望能够找到的每个数字字符串('0' - '99' 为你),然后将其加入到我的数据中,例如:

SELECT
mq.my_query_string, MAX(numbers.ns)
FROM my_query AS mq
JOIN numbers ON CONCAT(mq.my_query_string, ' ') LIKE CONCAT('%near ', numbers.ns, ' %')
GROUP BY mq.my_query_string

我正在为数据CONCAT添加一个空格,以便“11”不会与“1”匹配。

SQLFiddle在这里:http://sqlfiddle.com/#!2/8fda1c/4

(实际上,正确的方法是标准化您的数据,这样您就有一个 my_query_nears 表,每行一个值,但有时我们必须玩我们收到的牌。)

关于Mysql:搜索子字符串并返回其右侧最大#的那个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27430746/

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