我想加入兩個表。這沒有問題。我遇到了完全不同的問題。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