MySQL SQL Pass-Thru 中的文本替换

Text substitution in MySQL SQL Pass-Thru

提问人:Hack-R 提问时间:3/10/2016 最后编辑:Victor OlexHack-R 更新时间:9/28/2016 访问量:48

问:

我正在将 SlashDB 用于 MySQL 的 REST API(SQL Pass-thru)。

这允许您编写一个 SQL 查询,其中参数(将替换为用户文本)前面是 。例如::

select * from mydb where name = :name;

可以正常工作,假设 - 如果 name 表示可能更改为“Atlanta”的值 - 您想要的是:

select * from mydb where name = 'Atlanta';

问题是我试图在参数的开头和结尾使用通配符。我要运行的查询是:like

select * from mydb where name like '%Atlanta%';

但是当我输入

select * from mydb where name like '%:name%';

结果是:

select * from mydb where name like '%'Atlanta'%';

这当然行不通。

MySQL slashdb

评论


答:

1赞 Victor Olex 6/14/2016 #1

问得好。这可能有点棘手,但您可以通过以下方式实现此目的:

SELECT *
FROM mydb
WHERE name LIKE CONCAT('%', :name, '%')

P.S. 请用标签标记你的 SlashDB 问题:slashdb