我想加入两个表。这没有问题。我遇到了完全不同的问题。MySQL JOIN&拆分字符串
这里是我的代码:
SELECT * FROM `table1`
JOIN `table2` ON `table1.`field`=`table2`.`field`
...
的主要问题是,table1.field
是一个字符串,以逗号分隔。有没有什么好的和快速的方法来分裂它?
更新
我由费德里科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, '');
用法:
非常有用,但它需要位置整数作为第三个参数。无论如何,我不知道知道逗号分隔的词的量。基本上,它可以达到20个字,但我不知道有多少。
更新2 澄清我的问题。下面是我喜欢(我知道下面的查询是不正确的):
SELECT * FROM `table1`
JOIN `table2` ON `table2`.`id` IN (`table1`.`field`)
更新3
例字符串:table1.field
= '202,185,505',table2.field
= 202
你能举一个你提到的字符串的例子吗? – zevra0 2010-08-30 01:11:39
当然,编辑我的问题。 – Tom 2010-08-30 11:13:07