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語句貼出來吧,需要考慮上下文啊