我希望将两个表连接起来。这方面没有问题。我遇到的问题是完全不同的。
以下是我的代码:
主要问题在于
我找到了Federico Cagnelutti的一个函数。
以下是我的代码:
SELECT * FROM `table1`
JOIN `table2` ON `table1.`field`=`table2`.`field`
...
主要问题在于
table1.field
是一个字符串,逗号分隔。有没有好的快速方法来拆分它?
更新我找到了Federico Cagnelutti的一个函数。
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
使用方法:
SELECT SPLIT_STR('a|bb|ccc|dd', '|', 3) as third;
非常有用,但需要将位置整数作为第三个参数。无论如何,我不知道由逗号分隔的单词数量。基本上,最多可以达到20个单词,但我不知道具体数量。
更新2 为了澄清我的问题,这是我想要的(我知道以下查询不正确):
SELECT * FROM `table1`
JOIN `table2` ON `table2`.`id` IN (`table1`.`field`)
更新 3
示例字符串: table1.field
= '202, 185, 505',table2.field
= 202