locate是查找第一个参数在第二个参数中的位置, 不存在时返回值为0
concat是连接各个参数
locate(',1,',concat(',',ext3))=0的意思是',1,'这个串不在','和ext3的连接字符串中
后面类似
B. SQL中的LOCATE函数问题
你的代码不完整,LOCATE函数用于查找字符串的位置,和insert函数差不多,只是参数的位置调了。
如果你的代码是完整的,至少是这样的:
LOCATE('X\'OA\'', Fst_name) >0 ...
明白我的意思吧,所以你还是贴出你最原始的代码,别人好解决。
C. sql语句定位数据库
USE [数据库名]--要打开的数据库名
GO
Select * from [表]--要进行查询的表名
D. mysql 用 locate怎么查询多个关键词
假设有这样两条数据:
(表名为user)
1) username=admin,password=000000
2) username=admin,password=123456
我们要实现的效果是可以输入多个关键字查询,多个关键字间以逗号分隔。
使用上述表举例:输入单个关键字“admin”可查出这两条数据,输入“admin,000000”只查出第一条数据,可实现的sql语句是:
select * from user where concat(username, password) like '%admin%';
select * from user where concat(username, password) like '%admin%' and concat(username, password) like '%000000%';
concat的作用是连接字符串,但这样有一个问题:如果你输入单个关键字“admin000000”也会查到第一条数据,这显然不是我们想要的结果,解决方法是:由于使用逗号分隔多个关键字,说明逗号永远不会成为关键字的一部分,所以我们在连接字符串时把每个字段以逗号分隔即可解决此问题,下面这个sql语句不会查询到第一条数据:
select * from user where concat(username, ',', password) like '%admin000000%';
如果分隔符是空格或其他符号,修改 ',' 为 '分隔符' 即可。
总结:
select * from 表名 where concat(字段1, '分隔符', 字段2, '分隔符', ...字段n) like '%关键字1%' and concat(字段1, '分隔符', 字段2, '分隔符', ...字段n) like '%关键字2%' ......;
E. SQL中几个快速定位语句
1, 查找表或SP相互引用的对象SELECT DISTINCT OBJECT_NAME(referencing_id) AS sp_nameFROM sys.sql_expression_dependencies (NOLOCK)
WHERE referenced_entity_name = '查找表或SP'ORDER BY sp_name123456
2, 在Sp中模糊查找字符SELECT DISTINCT b.name
FROM dbo.syscomments a, dbo.sysobjects b
WHERE a.id=b.id and a.text like '%%'12345
3,查看表字段被哪些SP更新SELECT o.name SpName, c.name ColumnName, d.is_updated, d.is_selected, d.is_select_all
FROM sys.objects o
JOIN sys.sql_dependencies d ON o.object_id = d.object_id
JOIN sys.objects o2 ON o2.object_id = d.referenced_major_id
JOIN sys.columns c ON c.object_id = d.referenced_major_id
AND c.column_id = d.referenced_minor_id
WHERE o2.name = 'Sales_Tax_Sku_Mapping'
F. sql server怎么实现mysql 中的locate函数
在mysql 里是没有像sqlserver的charindex函数的, 用LOCATE和POSITION函数可以实现功能!
LOCATE(substr,str)
POSITION(substr IN str)
返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0:
mysql> SELECT LOCATE(’bar’, ‘foobarbar’);
-> 4
mysql> SELECT LOCATE(’xbar’, ‘foobar’);
-> 0
这个函数是多字节安全的。在 MySQL 3.23 中,这个函数是字母大小写敏感的,当在 MySQL 4.0 中时,如有任一参数是一个二进制字符串,它才是字母大小写敏感的。
LOCATE(substr,str,pos)
返回子串 substr 在字符串 str 中的第 pos 位置后第一次出现的位置。如果 substr 不在 str 中返回 0 :
mysql> SELECT LOCATE(’bar’, ‘foobarbar’,5);
输出-> 7
这个函数是多字节安全的。在 MySQL 3.23 中,这个函数是字母大小写敏感的,当在 MySQL 4.0 中时,如有任一参数是一个二进制字符串,它才是字母大小写敏感的。
G. SQL Server中如何定位
select top 4000 * from tablename
查到 最后一行,复制那一行,编辑-------查找
H. sql怎样定位一个字符所在的位置
常用的字符串函数,其作用可分为四大类:串接字符、截取字符、转换字符、其他作用的字符函数。
串接,就是把单独的字符串组合为一个。如把人的姓和名串接在一起形成一个完整的姓名字符串。
截取,是指从字符串里提取出一部分字符,形成子串。可以分为截取字符、提取字符的位置。
转换,是指把一个字符串中的内容或形式变换成另一个内容或形式。分为内容转换和形式转换。
其他作用的字符函数:以上三种作用之外的其他字符函数。
下面详细介绍。
串接函数
可以通过+或者-,实现串接操作。在不同的数据库管理系统中,使用的串接符号不同。
在SQL SERVER中的代码为:SELECT ‘JOHN’+ ‘SON’
在MySQL中的代码为:SELECT CONCAT(‘JHON’,‘SON’)
截取函数
1、SUBSTR(COLUMN NAME,STARING POSITION,LENGTH)
COLUMN NAME:字段名称
STARING POSITION:起始位置,即从第几个字符开始截取
LENGTH:长度,即截取多少个字符的长度
select emp_id,substr(emp_id,1,3) from employee
从雇员表中检索出雇员编号,雇员姓名两个字段。其中雇员姓名可通过从编号ID的前三个字符截取得到。
2、TRIM()、LTRIM()、RTRIM(),剪除字符串中的字符。
SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:
MySQL: TRIM( ), RTRIM( ), LTRIM( )
Oracle: RTRIM( ), LTRIM( )
SQL Server: RTRIM( ), LTRIM( )
各种 trim 函数的语法如下:
TRIM ( [ [位置] [要移除的字串] FROM ] 字串): [位置] 的可能值为 LEADING (起头), TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字串] 是什么的话,那空白就会被移除。
LTRIM(字串): 将所有字串起头的空白移除。
RTRIM(字串): 将所有字串结尾的空白移除
I. sql 怎样定位一个字符所在的位置
可以通过INSTR方法来进行查询:
sql:select INSTR('abcdefg ','c') from al;
输出结果:3。
解释:以上sql就是查询c字符在“abcdefg”中的位置。
J. Mysql 的SQL语句中locate(String exp1,String exp2)=1怎么理解
mysql中的locate大致上相当于php中的strpos,像这种=1的情况,可以把完整的ssql语句贴出来吧,需要考虑上下文啊