gpt4 book ai didi

mysql - 等价于在 MySQL 中处理字符串的 explode()

转载 作者:IT老高 更新时间:2023-10-28 12:58:15 24 4
gpt4 key购买 nike

在 MySQL 中,当另一个值 = '7 - 31' 时,我希望能够搜索 '31 - 7'。我将使用什么语法来拆分 MySQL 中的字符串?在 PHP 中,我可能会使用 explode(' - ',$string) 并将它们放在一起。有没有办法在 MySQL 中做到这一点?

背景:我正在处理运动分数,并想尝试分数相同(以及同一日期)的比赛 - 每支球队列出的分数与其对手的数据库记录相比是倒数的。

理想的 MySQL 调用应该是:

Where opponent1.date  = opponent2.date
AND opponent1.score = opponent2.score

(opponent2.score 需要向后 opponent1.score)。

最佳答案

MYSQL 没有内置类似 explode() 的函数。但是您可以轻松地将类似的函数添加到您的数据库中,然后从 php 查询中使用它。该函数将如下所示:

CREATE FUNCTION SPLIT_STRING(str VARCHAR(255), delim VARCHAR(12), pos INT)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str, delim, pos),
CHAR_LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1),
delim, '');

用法:

SELECT SPLIT_STRING('apple, pear, melon', ',', 1)

上面的例子将返回apple。我认为在 MySQL 中返回数组是不可能的,因此您必须在 pos 中明确指定要返回的事件。如果你成功使用它,请告诉我。

关于mysql - 等价于在 MySQL 中处理字符串的 explode(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928599/

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