如何在存储过程里写模糊查询
1个回答
展开全部
存储过程里面可以写 SQL 语句, SQL 语句可以模糊查询。 So 存储过程 就这么写模糊查询 。
如果不是使用SQL语句的, 而是一个字符串变量的模糊查询的话。
使用字符串搜索的函数来处理。
Oracle
INSTR
4参数:
被检索字符串
检索的字符串
哪里开始(默认1)
找第几个(默认1)
SQL> SELECT
2 INSTR('easy come, easy go, so easy!', 'easy') A,
3 INSTR('easy come, easy go, so easy!', 'easy', 3) B,
4 INSTR('easy come, easy go, so easy!', 'easy', 3, 2) C
5 FROM
6 dual;
A B C
---------- ---------- ----------
1 12 24
SQL Server
CHARINDEX
3参数
检索字符串
被检索字符串
哪里开始(默认1)
1> SELECT
2> CHARINDEX('easy', 'easy come, easy go, so easy!') A,
3> CHARINDEX('easy', 'easy come, easy go, so easy!', 3) B
4> go
A B
----------- -----------
1 12
MySQL
INSTR
MySQL INSTR只支持从第一个字符开始找第一个
LOCATE支持从指定位置开始找
mysql> SELECT
-> INSTR('easy come, easy go, so easy!', 'easy') A
-> //
+---+
| A |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
mysql> SELECT
-> LOCATE ('easy', 'easy come, easy go, so easy!', 2) A
-> //
+----+
| A |
+----+
| 12 |
+----+
1 row in set (0.00 sec)
如果不是使用SQL语句的, 而是一个字符串变量的模糊查询的话。
使用字符串搜索的函数来处理。
Oracle
INSTR
4参数:
被检索字符串
检索的字符串
哪里开始(默认1)
找第几个(默认1)
SQL> SELECT
2 INSTR('easy come, easy go, so easy!', 'easy') A,
3 INSTR('easy come, easy go, so easy!', 'easy', 3) B,
4 INSTR('easy come, easy go, so easy!', 'easy', 3, 2) C
5 FROM
6 dual;
A B C
---------- ---------- ----------
1 12 24
SQL Server
CHARINDEX
3参数
检索字符串
被检索字符串
哪里开始(默认1)
1> SELECT
2> CHARINDEX('easy', 'easy come, easy go, so easy!') A,
3> CHARINDEX('easy', 'easy come, easy go, so easy!', 3) B
4> go
A B
----------- -----------
1 12
MySQL
INSTR
MySQL INSTR只支持从第一个字符开始找第一个
LOCATE支持从指定位置开始找
mysql> SELECT
-> INSTR('easy come, easy go, so easy!', 'easy') A
-> //
+---+
| A |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
mysql> SELECT
-> LOCATE ('easy', 'easy come, easy go, so easy!', 2) A
-> //
+----+
| A |
+----+
| 12 |
+----+
1 row in set (0.00 sec)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询