我正在尝试编写一个mysql查询,以便用户输入的搜索字符串是数据库中的值加上最多两个附加字符(来自0-5和a-b的子集)。
我最初使用mysql INSTR函数开始执行查询,这样我的查询就是这样的:
SELECT * FROM table WHERE INSTR(<user_input>, name) = 1;
但是这显然不会检查附加字符是什么,或者有多少,所以根据现有的行,它不会返回正确的值。如何编写查询来执行此操作?
例如,如果我的数据库中有以下行:
Name: ABCD
Name: LMNO
Name: A
如果用户发送ABCD或ABCD1,我希望它返回第一行(使用我最初使用的INSTR方法,它将返回第一行和最后一行),但如果它们发送A2B,它将返回最后一个。
答案 0 :(得分:0)
使用
where '%'||field_name||'%' like ABCD1;
然后你选择最大长度。