未知ID时如何删除指定name的数据?SQL语法报错求助
解决MariaDB中按name批量删除数据的语法错误问题
嗨,这个问题我之前也踩过坑!你遇到的报错原因很明确:字符串类型的查询值必须用单引号(或双引号)包裹,你写的name IN ( name1 , name2 )里,MariaDB会把name1、name2当成字段名来解析,而不是你要匹配的字符串值,所以才会抛出语法错误。
正确的删除语句
直接给你能正常执行的SQL:
DELETE FROM tab WHERE name IN ('name1', 'name2');
补充说明
- 为什么用
id IN (1,2)没问题?因为id是数值类型,数值常量不需要引号包裹,数据库能直接识别。 - 如果是在应用程序中执行这类操作,建议使用参数化查询(比如Java的PreparedStatement、Python的pymysql参数化写法),既能避免这类语法错误,还能有效防止SQL注入风险。
内容的提问来源于stack exchange,提问作者And
相关产品推荐
相关产品推荐

