当 mysql 查询包含 python 中的占位符时如何搜索军事比赛?

How to search for martial matches when mysql query contains a placeholder in python?

查询 1:

"SELECT name FROM mytable WHERE name LIKE '%e%'";

此查询将查找所有包含字母“e”的姓名。

查询 2:

"SELECT name FROM mytable WHERE name LIKE '%s'" % search_name;

此查询将查找包含完全匹配 search_name 的所有名称。

我想知道的是,在查询 2 中使用占位符时,是否有一种方法可以像查询 1 中那样查询部分匹配项?

我试过类似的方法:

"SELECT name FROM mytable WHERE name LIKE %'%s'%" % search_name; <- 没用; "SELECT name FROM mytable WHERE name LIKE '%%s%'" % search_name; <- 也没有用;

要么使用不同的方式来格式化查询字符串中的字符串,例如

SELECT name FROM mytable WHERE name LIKE '%" + search_name + "%'"

或 f-Strings。

或者您可以添加更多的 % 并用斜杠将其转义,以便它正常放入字符串中。

\%%s\%