delphi中有个locate函数,有个疑惑,不清楚他是全字匹配还是像数据库中的like

delphi中有个locate函数,有个疑惑,不清楚他是全字匹配还是像数据库中的like,第1张

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的连接字符串中

后面类似


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9878640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存