SELECT FROM Persons
WHERE City LIKE 'N%'
从 "Persons" 表中选取居住在以 "N" 开始的城市里的人。
2
SELECT FROM Persons
WHERE City LIKE '%N'
从 "Persons" 表中选取居住在以 "N" 结尾的城市里的人。
3
SELECT FROM Persons
WHERE City LIKE '%N%'
从 "Persons" 表中选取居住在包含 "N" 的城市里的人。select from a where [name] like (select top 1 '%'+convert(varchar(200),code)+'%' from b )
查询分析器中测试通过
程序中的话要保证传递给sql的是这个方法很多,下面你可以通过join ,exist, where 和不同的表达式 instr, like , regexp等找出很多种写法。
||在MySQL中一般情况下是做OR运算,而不是标准SQL中的字符串加。
SQL code
1
2
3
4
5
6
7
8
9
10
11
mysql> select from a1 where exists (select id from b1 where INSTR(a1id,id));
+--------+
| id |
+--------+
| 张三千 |
| 李四万 |
| 王五 |
+--------+
3 rows in set (008 sec)
mysql>
SQL code
1
2
3
4
5
6
7
8
9
10
11
12
mysql> select from a1 where exists (select id from b1 where a1id like concat(
'%',id,'%'));
+--------+
| id |
+--------+
| 张三千 |
| 李四万 |
| 王五 |
+--------+
3 rows in set (006 sec)
mysql>
SQL code
1
2
3
4
5
6
7
8
9
10
11
mysql> select from a1 where exists (select id from b1 where a1id regexp id);
+--------+
| id |
+--------+
| 张三千 |
| 李四万 |
| 王五 |
+--------+
3 rows in set (005 sec)
mysql>
SQL code
1
2
3
4
5
6
7
8
9
10
11
12
mysql> select distinct a1id
-> from a1 inner join b1 on a1id regexp b1id;
+--------+
| id |
+--------+
| 张三千 |
| 李四万 |
| 王五 |
+--------+
3 rows in set (001 sec)
mysql>
SQL code
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> select distinct a1id
-> from a1 , b1
-> where INSTR(a1id,b1id);
+--------+
| id |
+--------+
| 张三千 |
| 李四万 |
| 王五 |
+--------+
3 rows in set (002 sec)
mysql>LIKE语句的语法格式是:select from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。
假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据。现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:
select from table1 where name like "张"
如果要查询以“张”结尾的记录,则语句如下:
select from table1 where name like "张"
这里用到了通配符“”,可以说,like语句是和通配符分不开的。LIKE运算符可以使用以下两个通配符 “%”和 “-”。其中: “%”代表零个或多个字符。 “-”代表一个且只能是一个字符。 如果您只记得SALESMAN的第一个字符为S,第三个字符为L,第五个字符为S,那该如何处理呢 SQL> SELECT empno, ename, sal, job 2 FROM emp 3 WHERE job LIKE ’S_L_S%’; 结果 EMPNO ENAME SAL JOB ---------- -------------------- ---------- -------- 7499 ALLEN 1600 SALESMAN 7521 WARD 1250 SALESMAN 7654 MARTIN 1250 SALESMAN 7844 TURNER 1500 SALESMAN 从上面的查询语句,可以看出,通过在LIKE表达式中使用不同的通配符“%”和 “-”的组合,可以构造出相当复杂的限制条件。 另外,LIKE运算符可以帮助您简化某些WHERE子句。例如要显示在1981年雇用的所有员工的清单,可以使用这个查询语句。 SQL> SELECT empno, ename, sal, hiredate 2 FROM emp 3 WHERE hiredate LIKE ’%81’; 结果 EMPNO ENAME SAL HIREDATE ---------- ------------------ ---------- --------- 7499 ALLEN 1600 20-FEB-81 7521 WARD 1250 22-FEB-81 7566 JONES 2975 02-APR-81 7654 MARTIN 1250 28-SEP-81 7698 BLAKE 2850 01-MAY-81 7782 CLARK 2450 09-JUN-81 7839 KING 5000 17-NOV-81 7844 TURNER 1500 08-SEP-81 7900 JAMES 950 03-DEC-81 7902 FORD 3000 03-DEC-81 已选择11行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)