2012-03-20 31 views
0

可以說我有一個表,如下所示,的MySQL創建CONCAT價值觀

+----+-------------+ 
| id | value  | 
+----+-------------+ 
| 1 | aa,bb,cc,dd | 
| 2 | ee,ff,gg,hh | 
+----+-------------+ 

我希望能夠搜索這個表,看是否id = 1 AND value = 'cc'。我假設這樣做的一個好方法是獲取id = 1行並將其值分隔到新視圖中的單獨行中。類似的,

+-----+ 
| val | 
+-----+ 
| aa | 
| bb | 
| cc | 
| dd | 
+-----+ 

我想在MySQL中做所有這些。我該如何做到這一點,並有可能有更好的方法來做到這一點?

+0

看看這個:http://stackoverflow.com/questions/3908966/mysql-procedure-to-load-data-from-staging-table-to-other-tables-need-to- split-u/3909888#3909888 – 2012-03-20 11:36:14

+0

有人發佈了這個,但後來刪除它。我認爲它稍有幫助,如此不適當地重新記錄。 http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/ – cnotethegr8 2012-03-20 12:13:45

回答

1

這篇文章可以幫助您解決問題:

Mysql split column string into rows

取而代之的是:

DECLARE cur1 CURSOR FOR 
      SELECT table1.id, table1.value 
      FROM table1 
      WHERE table1.value != ''; 

試試這個以符合您的需求,

DECLARE cur1 CURSOR FOR 
      SELECT id, value 
      FROM table1 
      WHERE id = 1; 
+0

完美,謝謝! – cnotethegr8 2012-03-20 12:14:17

0

它不是好辦法,但你可以做字符串搜索這樣

...WHERE id = 1 and 
(value like ',cc,' OR 
substring(value, -1*LENGTH('cc')-1) = ',cc' OR 
substring(value, 0, LENGTH('cc')+1) = 'cc,')