SQL 对用户输入值使用 LIKE

SQL Using LIKE on userinput value

我正在尝试 select 基于用户输入的 table 中的所有值。我的问题是,当我尝试编写查询并包含“%”字符时,我总是 运行 出错。我尝试了至少 10 种不同的放置方式,但总是收到错误消息。正在使用的数据库是 MySQL.

SELECT * FROM clients WHERE UserName = %:UserName;

如果您想将运算符 LIKE 与通配符 '%' 一起使用,您必须将其连接到用户的输入:

SELECT * 
FROM clients 
WHERE UserName LIKE CONCAT('%', :UserName);

如果您想要 UserName 包含 :UserName 的所有行:

WHERE UserName LIKE CONCAT('%', :UserName, '%');