SQL中代替Like语句的另一种写法_数据库其它

比如查找用户名包含有"c"的所有用户, 可以用

use mydatabase
select * from table1 where username like'%c%"

下面是完成上面功能的另一种写法:
use mydatabase
select * from table1 where charindex('c',username)>0
这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字
符串及其它的运算上, 所以运用charindex函数也没什么大不了. 用这种方法也有好处, 那就是对%,|等在不能直接用like
查找到的字符中可以直接在这charindex中运用, 如下:
use mydatabase
select * from table1 where charindex('%',username)>0
也可以写成:
use mydatabase
select * from table1 where charindex(char(37),username)>0
ASCII的字符即为%

时间: 2024-07-29 04:17:54

SQL中代替Like语句的另一种写法_数据库其它的相关文章

SQL中代替Like语句的另一种写法

比如查找用户名包含有"c"的所有用户, 可以用 use mydatabaseselect * from table1 where username like'%c%" 下面是完成上面功能的另一种写法:use mydatabaseselect * from table1 where charindex('c',username)>0这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字符串及其它的运算上,

在SQL中代替Like语句的另一种写法

语句 比如查找用户名包含有"c"的所有用户, 可以用 use mydatabaseselect * from table1 where username like'%c%" 下面是完成上面功能的另一种写法:use mydatabaseselect * from table1 where charindex('c',username)>0这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字符串及其它的运

ASP.NET MVC中URL地址传参的两种写法_实用技巧

一.url地址传参的第一种写法 1.通过mvc中默认的url地址书写格式:控制器/方法名/参数 2.实例:http://localhost:39270/RequestDemo/Index/88,默认参数名为id所以名称为id. 如果使用其他名称,后台是无法读取的会报错 二.url地址传参的第二种写法 1.使用?加参数名=参数值的写法,如果有多个参数使用&来连接 http://localhost:39270/RequestDemo/Index?id=88&name=%E5%BC%A0%E4%

sql中的select语句执行属性问题

问题描述 sql中的select语句执行属性问题 SELECT orders.*, (SELECT username FROM USER WHERE orders.user_id = user.id)username, (SELECT sex FROM USER WHERE orders.user_id = user.id)sex FROM orders 下面这个语句 的执行顺序是啥 这个语句这样写感觉好奇怪 有没有对sql比较懂得大神 解决方案 先执行子查询,然后结果保留,然后执行外部查询进行

jsp 中要写表单 现在2种写法为什么一个参数导入了,另一个没导入为空?

问题描述 jsp 中要写表单 现在2种写法为什么一个参数导入了,另一个没导入为空? <tr> <td class="table_add_left"><div id="description_div">备注:</div></td> <td colspan="3" class="table_add_right"><html:textarea cols=&

pl/sql中操作DML语句

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 INSERT     DECLARE  v_empno emp.empno%TYPE := &empno;  v_ename emp.ename%TYPE := '&ename';  v_salary emp.sal%TYPE := &sal;  BEGIN  INSERT INTO emp(empno,ename,s

sql学习之CASE WHEN THEN ELSE END的用法_数据库其它

超强:SQL命令中的case...when...then...else...end条件查询(不同于where) 与 类型转换的用法 case...when...then...else...end,是在from前面,可以改变记录中某字段的值,不能决定是否显示该记录: where,是在from后面,不可以改变记录中某字段的值,但可以决定是否显示该记录. case...when...then...else...end,可用于对同一记录的多个字段求和,带分支判断. 另外,对字段判断和处理,往往需要强制类

SQL注入之基于布尔的盲注详解_数据库其它

基于布尔的盲注 Web的页面的仅仅会返回True和False.那么布尔盲注就是进行SQL注入之后然后根据页面返回的True或者是False来得到数据库中的相关信息. 由于本次是布尔注入,手注无法完整地进行脱裤.所以在本节需要编写大量的代码来帮助我们进行SQL注入,得到数据.所以在这章里面会有很多的Python代码. 本次的示例就是Less-8. 通过进行下面的语句的注入测试 http://localhost/sqlilabs/Less-8/?id=2' http://localhost/sqli

SQL 中使用in语句

问题描述 在写sql时,听说过in语句的执行效率比较低,但是下面的情况我必须要用in语句,如一个表customer的主键为ID,我在程序里面找到了要取出来的所有的customer的ID然后我要根据这些ID把customer的详细信息从数据库中取出来,我只好用in了不知道这种情况有没有不用in语句的办法 解决方案 解决方案二:同问,我的sql也很烂,平时也老用in...解决方案三:不一定,如果in里边的语句执行效率低,并且如果这个返回的数组比较大的话,那会比较响整个语句.不管怎么说in和=号肯定也