4

我有一个如下表:

 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 来实现呢?

4

2 回答 2

5

您应该能够执行以下操作:

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
于 2010-02-16T12:44:58.783 回答
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
于 2010-02-16T12:45:22.760 回答