1

我有 2 张桌子

table1 有 id 列,它只是一个自动递增数字 table2 有 id 列,它是相同的,但以“vt_”开头,然后是数字

我需要删除 table2 上 table2.id 与 table1.id 不匹配的任何行但我被卡住了,因为我需要替换“vt_”才能比较这两个数字。

我知道我可以在 SELECT 中做到这一点,例如“SELECT REPLACE(table2.id,'vts_','') AS table2_id”

我无法让它工作,我最后一次尝试是这样的:

$sql = @mysql_query("DELETE 
                           voting
                        FROM 
                            voting
                        INNER JOIN vouchers
                        ON REPLACE(voting.item,'vts_','') = vouchers.id");
4

1 回答 1

3

LEFT JOIN在这里使用

DELETE voting
FROM voting LEFT JOIN vouchers
      ON REPLACE(voting.item,'vts_','') = vouchers.id
WHERE  vouchers.id IS NULL
于 2013-01-15T09:09:55.667 回答