SQL中一些MySQL不支持的语句

SQL SELECT TOP

SELECT TOP 用来规定要返回的记录的数目。但MySQL中并不支持这一语句,MySQL支持用LIMIT语句来选取指定的数据的数目。

SELECT TOP number|persent column_name
FROM table_name;

MySQL语法

SELECT column_name
FROM table_name
LIMIT number;

SQL[charlist]通配符

SQL中可以使用以下通配符

通配符描述
%代替0个或多个字符
_代替1个字符
[charlist]字符列中任意单一字符
[^charlist]或[!charlist]不在字符列中任意单一字符

但是MySQL中只支持 %_ 通配符,不支持 [charlist]
MySQL会把like '[qqq]yyy'的中括号当成普通字符,而不是通配符。
所以当在MySQL中使用

SELECT * FROM BOOKS WHERE bookname LIKE '[m]ath'

它会查出的是bookname[m]ath的行,而不是booknamemath的行
那如果要在MySQL中实现 [charlist] 或者 [!charlist] 的效果就需要使用REGEXPNOT REGEXP 运算符(或 RLIKENOT RLIKE)
下面的SQL语句表示选取BOOKS中以m、c或e开头的书

SELECT * FROM BOOKS
WHERE bookname REGEXP '^[mce]';

下面的SQL语句表示选取BOOKS中不以m、c或e开头的书

SELECT * FROM BOOKS
WHERE bookname REGEXP '^[^mce]';

SQL FULL JOIN

MySQL 暂不支持 FULL JOIN, 要实现完全外部链接需要额外处理。
MySQL实现完全外部链接,要使用 UNION 将一个左链接、和一个右链接去重合并

SELECT x.*,y.*
FROM1 x LEFT JOIN2 y
ON x.unit_NO = y.unit_NO

UNION

SELECT yx.*,.*
FROM1 x RIGHT JOIN2 y
ON x.unit_NO = y.unit_NO;

SQL FIRST()和LAST()函数

FIRST()用于返回指定列的第一个值,LAST()用于返回指定列的最后一个值。但都只有Ms Access支持。
MySQL 语法
FIRST()

SELECT column_name FROM table_name
ORDER BY column_name ASC
LIMIT 1;

LAST()

SELECT column_name FROM table_name
ORDER BY column_name DESC
LIMIT 1;

##LEN()
SQL LEN() 语法

SELECT LEN(column_name) FROM table_name;

MySQL 中函数为 LENGTH():

SELECT LENGTH(column_name) FROM table_name;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值