我有一个mysql数据库,我的表是:
Name | passcode
----------------------
hi* | 1111
----------------------
j?n | 2222
我希望此查询的结果如下:
Select * from Users Where Name='hiiiiiiiiiiii'
查询结果是我的第一行和*和?就像一个通配符,但我在我的数据库字段中使用它
答案 0 :(得分:0)
您不希望将通配符放在存储在数据库字段中的实际值中。要解决此示例,您需要在查询中连接外卡...
SELECT * FROM `Users` WHERE 'hiiiiii' LIKE CONCAT('%',`Name`,'%')
答案 1 :(得分:0)
你可以tyr regexp:
SELECT * FROM Users WHERE 'hiiiiii' REGEXP Name; -- hi*
SELECT * FROM Users WHERE 'jn' REGEXP Name; -- j?n
SELECT * FROM Users WHERE 'salaaaaaaaaaaaaaaaaaam' REGEXP Name; -- Sala*m
但是你应该小心,因为:
SELECT * FROM Users WHERE 'say hiiii to all!' REGEXP Name; -- hi*
SELECT * FROM Users WHERE 'Jn' REGEXP Name; -- j?n
SELECT * FROM Users WHERE 'n' REGEXP Name; -- j?n
这就是为什么你应该在字段名称中指定更严格的模式...
我认为这不是性能的最佳解决方案......