sql,模糊查询不用 like 怎么写?
这个也是面试官的问题
问
问
问问问问问问问问问问问问问问问问问问问问问问问问问问问问
问问问问问问问问问问问问问问问问问问问问问问问问问问问
用CONTAINS
例如 select * from tablename where CONTAINS(name,"张*");
查询出name列为张开头的信息
用instr 函数,
如select * from cm_user cm where instr(cm.user_code,'aaa')>0
也可以用between and 或者大于小于来写
--查询电话号码至善包含4个4的员工(不用like 用instr())
SELECT *
FROM employees
WHERE instr(phone_number,
4,
1,
4) <> 0;
CONTAINS 函数必须用于全文检索,要求你的列支持全文索引,而且要确保你机器上安装了全文检索引擎,并保证服务正常运行。其实挺麻烦的
很多时候用都用不了,更别谈取代like了
正常如果是masql
select * from table where instr(字段,'a')>0 这个写法就可以
如果是 sql server
SELECT * FROM table WHERE CHARINDEX('a',字段)>0