sql中like是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中like是啥意思?相关的知识,希望对你有一定的参考价值。

参考技术A

Like则是一种语句,用于模糊查询,主要是针对字符型字段的,在一个字符型字段列中检索包含对应子串的。

一、Like是什么意思?

1、Like算作MySQL中的谓词,其应用与is、=、>和

2、在sql结构化查询语言中,like语句有着至关重要的作用。

3、从某种意义上讲,Like可看作是一个精简的正则表达式功能。

二、Like作用

like语句的语法格式是select * from 表名 where 字段名 like 对应值(子串)

作用:主要是针对字符型字段的,在一个字符型字段列中检索包含对应子串的。

三、Like支持类型

Like主要支持两种通配符,分别是"_"和"%"。

1、"_"代表匹配1个任意字符,常用于充当占位符;

2、"%"代表匹配0个或多个任意字符。

四、Like两种使用情况

1、数据库存储的字段值更精确,参数为模糊值(一般情况都是这样);

2、数据库存储的字段值为模糊值,参数是更精确的值。

以上就是MySQL中Like的有关介绍,希望能帮助你理解哟~更多MySQL学习推荐:MySQL教程。

参考技术B

标准SQL中用like进行模糊查询,有两个通配符:%百分号代表任意个字符,_下划线代表一个字符。

1、like'Mc%' 将搜索以字母 Mc 开头的所有字符串。

2、like'%inger' 将搜索以字母 inger 结尾的所有字符串。

3、like'%en%' 将搜索在任何位置包含字母 en 的所有字符串。

SQL LIKE 操作符语法

‘_':下划线,表示1个任意字符;如 ... where name like '_am',表示仅第一位任意,并以'am'结尾,结果如"Tam","Mam","Pam"等。

'%’: 百分号,表示任意个任意字符;如 ... where name like ‘%am',表示前面可以有任意位,只要以'am'结尾,结果如"abcam",“bcdefgham","qwertyuiopam","am"等等。

以上内容参考:百度百科-SQL LIKE

MySQL 的 %LIKE% 子句的 JavaScript 等价物是啥?

【中文标题】MySQL 的 %LIKE% 子句的 JavaScript 等价物是啥?【英文标题】:What is the JavaScript equivalent of MySQL's %LIKE% clause?MySQL 的 %LIKE% 子句的 JavaScript 等价物是什么? 【发布时间】:2011-11-28 18:46:33 【问题描述】:

在 MySQL 中我使用 like 子句:

LIKE %some keyword% 

对数据库记录执行搜索。我可以使用什么来类似地在 JavaScript 中进行搜索?因此,如果用户输入类似

ger

它会显示

german shepard

不能使用:

str.search('ger');

因为它似乎只匹配整个单词

【问题讨论】:

【参考方案1】:

它与%LIKE% 不完全相同,但您可以使用indexOf()

var str = "Mohsen",
    st = "Moh";

if(str.indexOf(st) > -1) // true

【讨论】:

您的插入符号向后。 > 不是 < 天才:D...啊,我讨厌最小评论长度 你抓住我!啊,我讨厌最小评论长度 不,区分大小写dev.mysql.com/doc/refman/5.0/en/… 与 like 相比,这没什么,因为您不区分大小写,而且像 ç -> c 或 à -> a .. 这样的字符转置也不起作用。【参考方案2】:

我不确定您在什么上下文中使用 like 运算符(例如表单字段),但您可能想利用 javascript 的正则表达式对象。

一个简单的例子(在你的例子中,对于LIKE 查询),可能看起来像这样:

var regex = /.*ger.*/
var matchesRegex = regex.test(yourString);
if (matchesRegex) 
    //do something

或者,您可以使用 indexOf 操作搜索字符串的出现次数:

var matches = yourString.indexOf("ger") >= 0 ? true : false;
if (matches) 
    //do something

【讨论】:

给定某些输入可能很容易弄乱正则表达式 @Shredder:你是对的。我不知道为什么这是我想到的第一个解决方案。同时,正则表达式可以允许其他类似于 SQL 语法的事情,而您无法使用 indexOf 或其他字符串操作。【参考方案3】:

search 函数不仅返回整个单词。也许你对它返回从零开始的索引感到困惑,所以......

// this returns 0 as positive match at position 0
"german shepherd".search('ger')

// this returns -1 as negative match
"german shepherd".search('gerx')

因此,您需要将搜索结果与 -1 进行比较以查看它是否匹配 - 您不能只检查真/假。

所以你可以这样做......

if(str.search('ger') !== -1)
    // matches string
 else 
    // does not match string


// or another way
// add one to convert result to one-based index, and check truthiness
if(str.search('ger')+1)
    // there is a match
 else 
    // there is not a match

【讨论】:

【参考方案4】:

假设您有一堆记录作为字符串数组,您可以使用JavaScript built-in Array.filter method:

var ss = ['german shepard', 'labrador', 'chihuahua'];
var matches = ss.filter(function(s) 
  return s.match(/ger/);
);
matches; //output => ['german shepard']

或者,如果您的目标 JavaScript 没有实现该方法(例如,它实现了 ECMAScript 第 5 版之前的版本),那么您可以进行简单的数组搜索,例如:

var searchArray = function(arr, regex) 
  var matches=[], i;
  for (i=0; i<arr.length; i++) 
    if (arr[i].match(regex)) matches.push(arr[i]);
  
  return matches;
;
searchArray(ss, /h/); //output => ['german shepard', 'chihuahua']

【讨论】:

【参考方案5】:

我假设你有来自数据库的数据让我们说它就像

let names = ['yusuf', 'sabri', 'bayrakdar'];

您应该在filter 中使用includes

let searchValue = 'usu'
let filteredNames = names.filter(name => name.includes(searchValue));

filteredNames 将是 ["yusuf"]

【讨论】:

【参考方案6】:

我不确定是否所有浏览器都支持所有这些方法:http://www.javascriptkit.com/jsref/string.shtml

但看起来有一个String.match() 方法可以满足您的需求。

【讨论】:

【参考方案7】:

这是在 JQuery 中执行此操作的简单方法。

这通过表格行上的数据过滤器对表格内的文本数据进行过滤,但它可以很容易地用于其他目的。

$('#search').on('keyup', function() 
    var val = $.trim(this.value);
    if (val) 
        $('tr[data-filter!=' + val + ']').hide();
        $('tr[data-filter^=' + val + ']').show();
     else 
       $('tr[data-filter]').show();
    
);

在此示例中,它将隐藏未找到完全匹配的所有表行,然后按字符串值的开头进行过滤。 trim() 函数在所有内容都是空白的情况下很有用,然后它仍然会显示所有内容,就好像从未进行过搜索一样。如果您希望它在字符串中的任何位置显示搜索到的输入,请使用 * 而不是 ^。这两个特殊字符都区分大小写。还要确保首先显示隐藏命令并且两者都存在,否则它将无法正常工作。

在此处查看另一个同时使用 ^ 和 * 字符的示例: http://jsfiddle.net/heatwaveo8/2VKae/

【讨论】:

【参考方案8】:

我的代码:

// file name 1 = "E_000096_01.jpg"
// file name 2 = "E_000096_02.jpg"
// file name 3 = "E_000096_03.jpg"
// file name 4 = "E_000095_01.jpg"
var code = "000096";
var files = fs.readdirSync(dir).filter(file => file.indexOf(code) >= 0 ? true : false)
// result
console.log(files)
//["E_000096_01.jpg","E_000096_02.jpg","E_000096_03.jpg"]

【讨论】:

帖子只能是英文 - meta.stackexchange.com/questions/13676/…

以上是关于sql中like是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中的groupby是啥意思?

sql语句里面的union是啥意思

sql语句中“where1=1”是啥意思?

数据库中like\'_a%\'是啥意思

mysql中on,in,as,where如何用,意思是啥?

Mysql中%$d%是啥意思?