在大多数数据库管理系统(DBMS)中,SQL语句字符串中的位置索引是从1开始的,而不是从0开始。这意味着第一个字符的位置被表示为1,第二个字符的位置是2,依此类推。
- instr(string,substring,start_position) 返回substring在string中第一次出现的位置 没有则返回0 不区分大小写 start_position 默认从1开始
- locate(substring,string,start_position)返回substring在string中第一次出现的位置 没有则返回0 区分大小写 start_position 默认从1开始
SQL执行顺序
一般情况下,SQL查询的执行顺序是这样的:
- FROM: 数据库系统从指定的表中检索数据。
- WHERE: 对从表中检索的数据进行过滤,只选择满足条件的数据行。
- GROUP BY: 如果存在
GROUP BY子句,数据将按照指定的列进行分组。 - HAVING: 对分组后的数据进行过滤,只选择满足条件的分组。
- SELECT: 选择查询中指定的列。
- ORDER BY: 对结果进行排序。
- LIMIT/OFFSET: 选择要返回的行数范围(通常用于分页)。
-
MySql不支持outer join 需要用left join union right join
-
union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。
-
MySQl判断某列是否为空,不能用=null 要用 is null