Mysql 列的行以另一行的值开头

sys*_*ult 4 mysql recursive-query

我有一张如下表:

 MyTable
 --------
  A
  B
  C
Run Code Online (Sandbox Code Playgroud)

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;
Run Code Online (Sandbox Code Playgroud)

正如您从上面的查询中看到的,我有一个表,我想找到以另一个行值开头并与条件匹配的列。但是上面的查询显然失败了,因为 mysql 将“MT1.B%”作为字符串,我如何用 Mysql 实现这一点?

Dan*_*llo 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
Run Code Online (Sandbox Code Playgroud)