Skip to content

howto - mysql delete from table as t

You try something like

DELETE FROM my_table AS t WHERE ...
and you get back an error. The problem is, that you are using an alias for your table and mysql can not figure out where to delete from.

The solution/fix is simple

DELETE t FROM my_table AS t WHERE ...
.

I found the answere here

Translate to de es fr it pt ja

mysql delete with subquery using a limit

So, you are want to delete entries by using a subquery and the limit and all you get back is something like the following:

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

The solution is a little bit tricky and costs a bit performance but it is working, try the following:

DELETE FROM my_table WHERE my_table.id IN ( SELECT * FROM ( SELECT my_other_table.id FROM my_other_table WHERE my_other_table.condition = 'My condition' LIMIT 0, 100 ) as deleteTable);

Translate to de es fr it pt ja