1.like的用法
1.1 mysql%
在搜索字符型字段时,我们有时会使用 LIKE 关键字和通配符,这种做法虽然简单,但却也是以牺牲系统性能为代价的。例如下面的查询将会比较表中的每一条记录。
SELECT * FROM books
WHERE name like "MySQL%"
但是如果换用下面的查询,返回的结果一样,但速度就要快上很多:
SELECT * FROM books
WHERE name>="MySQL"and name<"MySQM"
SELECT * FROM books
WHERE name like "MySQL%"
但是如果换用下面的查询,返回的结果一样,但速度就要快上很多:
SELECT * FROM books
WHERE name>="MySQL"and name<"MySQM"
1.2 %mysql% my%sql my%sql% %my%sql%
如果是上面这种情况的sql使用like又该怎么优化呢,如果是上面这样的sql,只能通过使用全文索引来优化。innodb官网版本,暂且不支持全文索引。
2.流程控制sql
SELECT CASE WHEN p.`LEVEL` < N THEN
N
ELSE
N
END AS PLEVEL
FROM
user_goods p
N
ELSE
N
END AS PLEVEL
FROM
user_goods p