gpt4 book ai didi

java - 像列名一样使用 MySQL

转载 作者:行者123 更新时间:2023-12-01 00:25:12 26 4
gpt4 key购买 nike

我想使用 preparedstatement 编写一个 mysql select 查询。但是最后一部分有语法错误 concat('%', itemName, '%')"; itemName is a column of table ItemMain。我已经尝试了下面给出的 3 个查询。

String sql ="SELECT * FROM ItemMain WHERE ? = 'All' OR ? like concat('%', itemName, '%')";
String sql ="SELECT * FROM ItemMain WHERE ? = 'All' OR ? like '%'+itemName+'%'";
String sql ="SELECT * FROM ItemMain WHERE ? = 'All' OR ? like '%itemName%'";

最佳答案

字段名称不能使用占位符。查询必须是

... WHERE somefield=? OR otherfield LIKE concat('%', ?, '%')

占位符仅用于VALUES。字段/表名称、函数名称或 SQL 中的任何“结构”词都是禁止使用的。

这是mysql准备语句的一般规则。它不是 java/php/c#/whatever 限制。

关于java - 像列名一样使用 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com