使用 ?在 sql create '' around 参数
Posted
技术标签:
【中文标题】使用 ?在 sql create \'\' around 参数【英文标题】:Using ? in sql create '' around parameter使用 ?在 sql create '' around 参数 【发布时间】:2021-08-26 15:22:27 【问题描述】:我尝试创建这样的查询:
SELECT * FROM table_name WHERE column_name LIKE %?%
错误:
错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“%'word'%' 附近使用正确的语法
如何避免两个撇号?
这行得通:
SELECT * FROM table_name WHERE column_name LIKE ?
但我需要完全匹配。
【问题讨论】:
您需要在模式周围加上单引号。 【参考方案1】:我怀疑你想要:
WHERE column_name LIKE CONCAT('%', ?, '%')
但是,我建议您在应用程序中附加通配符并简单地使用:
WHERE column_name LIKE ?
【讨论】:
感谢您的回答,@gordon。康卡特工作正常。您能否详细说明在应用程序中附加通配符的含义? @Nothere 。 . .在发送参数的代码中,将'%'
放在参数的开头和结尾。
哈!这很聪明,@gordon。与 concat 相比有什么优势?只是速度?
@Nothere 。 . .它简化了查询逻辑。但我对此没有强烈的意见。以上是关于使用 ?在 sql create '' around 参数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 中使用 Create 语句创建临时表?
如何在使用 DBMS_SCHEDULER.CREATE_JOB 创建的作业中运行复杂的 PL/SQL 代码
SQL CREATE LOGON - 不能使用@parameter 作为用户名
如何在 Transact-SQL 的一个脚本中在 CREATE DATABASE DBName 之后使用 USE DBName?