sql,模糊查询不用 like 怎么写?

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