2010-02-16 28 views
1

的值開始我有一個表像下面:Mysql的列的行與另一行

MyTable 
-------- 
    A 
    B 
    C 

A,B,C都列MyTable的是表名,我想運行一個MySQL查詢,如:

SELECT MT1.A, MT2.A, MT2.B FROM MyTable MT1, MyTable MT2 
     WHERE MT1.B<>MT2.B and MT2.B like "MT1.B%" and MT2.status=0; 

正如你從上面的查詢中看到的,我有一個表,我想找到以另一行值開始並匹配條件的列。但上面的查詢明顯失敗,因爲MySQL將「MT1.B%」作爲一個字符串,我怎麼能實現這與MySQL?

回答

1

你應該能夠做到以下幾點:

SELECT 
    MT1.A, MT2.A, MT2.B 
FROM 
    MyTable MT1, MyTable MT2 
WHERE 
    MT1.B <> MT2.B AND 
    MT2.B LIKE CONCAT(MT1.B, '%') AND 
    MT2.status = 0 
0
SELECT MT1.A, MT2.A, MT2.B 
FROM MyTable MT1, MyTable MT2 
WHERE MT1.B<>MT2.B 
     AND MT2.B LIKE CONCAT(MT1.B, '%') 
     AND MT2.status=0