Locate 的函数的原型定义如下:
function Locate(const KeyFields: String const KeyValues:VariantOptions: TLocateOptions): Boolean其中,第3个参数定义如下:
TLocateOption = (loCaseInsensitive, loPartialKey)loCaseInsensitive 表示查找数据不分大小写;loPartialKey 表示以部分字符串来查寻数据。
缺省情况下,即第3个参数为 [] 时,此时要求查找要与目标字符完全匹配。
因此,假设 Name 字段中有 ForYouTou 的记录时:
locate('Name','You',[]) 是查找不到该条记录的。
可以尝试使用以下代码:
tbl1.Locate('Name','*You',[loCaseInsensitive, loPartialKey])在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 中时,如有任一参数是一个二进制字符串,它才是字母大小写敏感的。
locate是查找第一个参数在第二个参数中的位置,不存在时
返回值
为0
concat是连接各个参数
locate(',1,',concat(',',
ext3
))=0的意思是',1,'这个串不在','和ext3的连接字符串中
后面类似
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)