gpt4 book ai didi

用于在查询中进行多次替换的 mysql 存储函数

转载 作者:行者123 更新时间:2023-11-30 23:35:29 26 4
gpt4 key购买 nike

我有一张 table 1

tid letter1 letter2
1 a e
2 p b
3 c k
4 pp bb
5 rr ll

和另一个表2

t2id word
1 banana
2 strawberry
3 apple
4 grape

我需要一个 mysql 函数来比较表 1 上的替换过程后输入的单词和来自表 2 的单词,例如:

SELECT CHAR_LENGTH(word) AS charl FROM table2;

DECLARE i INT DEFAULT 0;

SET query = CONCAT(
' SELECT word FROM table2 WHERE ( ',
WHILE i < charl DO
//if word's i'nth letter found in the table1
IF (SELECT letter2 FROM table1 WHERE word{i} = letter1)
//replace letter1 with letter2 on this row
'REPLACE(word,letter1,letter2) AND ',
END;
' ) = 'inputword' ';

我的 mysql 知识太少了,无法做到这一点。我该怎么做?

最佳答案

如您所料,您需要在存储过程中执行此操作。

实际上是一个存储函数:

DELIMITER $$

CREATE FUNCTION ReplaceChars(Fullword VARCHAR(255)
, ReplaceThis VARCHAR(255)
, WithThis VARCHAR(255) ) RETURNS VARCHAR(255)
BEGIN
DECLARE Result VARCHAR(255);
DECLARE i INTEGER;

SET Result = Fullword;
IF LENGTH(ReplaceThis) = LENGTH(WithThis) THEN
SET i = LENGTH(ReplaceThis);
WHILE i > 0 DO
SET Result = REPLACE(Result, MID(ReplaceThis,i,1),MID(WithThis,i,1));
SET i = i - 1;
END WHILE;
END IF;
RETURN Result;
END $$

关于用于在查询中进行多次替换的 mysql 存储函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774375/

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