Soundex 声音相似的
select * from demos where Soundex('title') = Soundex('标示');
Concat 拼接语句
select concat(id,'(##',title,'##)') from demos;
正则 REGEXP
select * from demos where value regexp '\内容';
\表示查找;
\f 换页
\n 换行
\r 回车
\t 制表
\v 纵向制表
AND 和 OR 一起时,先处理 AND;
_下划线只匹配一个字符,%可以匹配除了NULL的数据;
IS NULL
检测是否为NULL; SELECT * FROM tab WHERE id IS NULL;
返回不同值
SELECT DISTINCT row FROM tab;
显示授权用户
SHOW GRANTS;
显示广泛的服务器状态信息
SHOW STATUS;
INNER JOIN 关键字
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
注释:INNER JOIN 与 JOIN 是相同的。
SELECT id FROM tab1 INNER JOIN tab2 ON tab1.id = tab2.id
AS 关键字
SELECT f.id,m.title FROM tab1 AS f LEFT JOIN tab2 AS m ON f.id = m.id
USING 关键字
用于表连接时给定连接条件(可以理解为简写形式),如
SELECT * FROM table1
JOIN table2 ON table1.id = table2.id
使用 USING 可以写为
SELECT * FROM table1
JOIN table2 USING(id)
HAVING
引入 HAVING 是因为 WHERE 无法和统计函数一起使用
如表 order (定单)有如下字段:
id, date, price, customer
查找订单总额少于2000的客户可以这样写:
SELECT customer, SUM(price) FROM order
GROUP BY customer
HAVING SUM(price)<2000
查找指定客户中订单超过1500的订单总额:
SELECT customer,SUM(price) FROM order
WHERE customer=’…’ OR customer = ‘…’
GROUP BY customer
HAVING SUM(price) > 1500
MATCH AGAINST
在body(后面的)里查询database与title(前面的)一起显示
mysql> SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('database');
DATEDIFF 返回两个日期之间的天数,
使用如下 SELECT 语句:
SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
结果:
DiffDate 1
IF条件
IF(expr1,expr2,expr3) 1为条件,true返回2,false返回3
SELECT IF(1<2,true,false); //返回true, 1
CASE 5 WHEN 1 THEN 'ONE' WHEN 2 THEN TWO ELSE XXX
类似 switch(5)
{
case 1:
'ONE'
break;
case 2:
'TWO'
break;
default:
xxx
break;
}
SELECT CASE 5 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE id END from TabName;
//如果这里的返回值带有引号,就是string类型,不能用于select 查询,不然返回的是这个字符串