SQL like子查询

SQL like子查询like子查询字符匹配:%(百分号)任意字长度(可以为0)的字符_(下横线)代表任意单个字符eg:a%b表示以a开头,以b结尾的任意长度的字符。三个常用的字符串截取函数:substr(column,1,n)left(column,n)right(column,n)str=’abcdefg’substr(str,1,3):’bcd’left(s…

大家好,又见面了,我是你们的朋友全栈君。

like子查询

字符匹配:

  • % (百分号)任意字长度(可以为0)的字符
  • _(下横线)代表任意单个字符

    eg:a%b表示以a开头,以b结尾的任意长度的字符。

三个常用的字符串截取函数:

  • substr(column,1,n)
  • left(column,n)
  • right(column,n)
str='abcdefg'
substr(str,1,3): 'bcd'
left(str,2): 'ab'
right(str,2) : 'fg'

下面举一个城市匹配的例子
表job_provinces结构

CREATE TABLE `job_provinces` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` int(11) NOT NULL, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) )CHARSET=utf8

表provinces结构

CREATE TABLE `provinces` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(11) DEFAULT NULL, PRIMARY KEY (`id`) ) CHARSET=utf8

现在从job_provinces中查找与provinces对应编号为1的省份的的code值

SELECT a.code from job_provinces a WHERE LEFT(a.name,2) LIKE LEFT((SELECT name from provinces WHERE id = 1),2)

同样可以定义存储过程来完成数据更改

BEGIN declare i int;
    set i=1;
    while i<35 do UPDATE univs set pid = (SELECT a.code from job_provinces a WHERE LEFT(a.name,2) LIKE LEFT((SELECT name from provinces WHERE id = i),2) ) WHERE pid = i;
         set i=i+1;
    end while;
END
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158829.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号