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-12-23 14:19:45

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 mydatabase select * from table1 where username like'%c%" 下面是完成上面功能的另一种写法: use mydatabase select * from table1 where charindex('c',username)>0 这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字 符串及其它

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

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 中使用in语句

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

sql中的iif语句详解

IIf 返回由逻辑测试确定的两个数值或字符串值之一. 语法 数字 IIf(«Logical Expression», «Numeric Expression1», «Numeric Expression2») 如果 «Logical Expression» 取值为 TRUE,则此函数返回 «Numeric Expression1»,否则,返回 «Numeric Expression2». 字符串 IIf(«Logical Expression», «String Expression1», «S

Linq to Sql中Single写法不当可能引起的数据库查询性能低下

场景:需要从T_User表中返回指字条件的某条记录的某一个字段 在Linq中有二种理论上都行得通的写法,见下面的代码: Codeusing (dbUserDataContext db = new dbUserDataContext(Website.ConnStrdbUser))            {                try {                     //Guid _UserId = db.T_User.Single(c=>c.F_ID==new Guid(&quo