2016-04-06 5 views
2

内の文字列の位置を取得することができます。は私が他の列

を| 列B

 
    1 | 1,2,3,4,5 
    4 | 1,2,3,4,5 
    5 | 1,2,3,4,5 

column bcolumn a位置を取得するためのあらゆる機能があり、最初のデータの結果は、第二は3で、3番目はあなたがFIND_IN_SETを使用することができます4

答えて

2

する必要があり、0です。

SELECT col_a, colb_b, 
     FIND_IN_SET(col_a, col_b) - 1 AS result 
FROM tab; 

SqlFiddleDemo

出力:

╔═══════╦════════════╦════════╗ 
║ cola ║ colb  ║ result ║ 
╠═══════╬════════════╬════════╣ 
║ 1 ║ 1,2,3,4,5 ║  0 ║ 
║ 4 ║ 1,2,3,4,5 ║  3 ║ 
║ 5 ║ 1,2,3,4,5 ║  4 ║ 
╚═══════╩════════════╩════════╝ 

見つからない場合は、-1を取得します。

SQL関数では、ほとんどが1ベースです。だからあなたは-1が必要です。


データを正規化し、原子値を列に格納することを強くお勧めします。

+0

私は知っていますが、それはテーブルのための特別な仕様です、実際には、パフォーマンスのために良いですが、実際にはそれのための列を作成したくない、多くのありがとう – Chan