我是数据库的初学者,我的问题很小。
这两个查询之间有什么区别?
SELECT *
FROM Products
WHERE ProductName LIKE '[C-M]%';
SELECT *
FROM Products
WHERE ProductName BETWEEN 'C%' AND 'M%';
答案 0 :(得分:1)
注意: 您没有提及您使用的DBMS产品,以下信息适用于var urljson = "data_json.php";
var data = null;
var jqXHR = $.ajax
({
type: "GET",
url: urljson,
dataType: 'json',
success: successHandler
});
function successHandler(result) {
data = result;
}
function update(){
var jqXHR = $.ajax
({
type: "GET",
url: urljson,
dataType: 'json',
success: successHandler
});
function successHandler(result) {
data = result;
}
}
$(document).ready(function(){
console.log(data) //// null
});
document.getElementById('update').addEventListener('click', function() {
update();
console.log(data) //// Array [ Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, other 3213… ]
});
。
第一个查询将返回SQL Server
以Products
和ProductName
之间的任何字母开头的所有C
。此列表包含在内。
M
示例输出:
Select *
From Products
Where ProductName Like '[C-M]%';
秒查询将返回C
Charlie
Delta
Echo
Foxtrot
Golf
Hotel
...
Lima
M
Mike
介于Products
之间且以字符串文字ProductName
结尾的所有C%
。 (注意:M%
不使用通配符。它是文字字符串M%
)。此列表不包含。
M%
示例输出:
Select *
From Products
Where ProductName Between 'C%' And 'M%';
答案 1 :(得分:0)
第一个返回名称以字符串[C-M]
开头的产品。
第二个产品的名称按字母顺序在C%
和M%
之间排序。
答案 2 :(得分:0)
SELECT * FROM Products
where ProductName Like '[C-M]%';
将生成ProductName
以C
和M
之间的任何字母开头的所有行,包括Mzzzzzz
之类的字母。
select * from Products
where ProductName between 'C%' And 'M%';
在此查询中,%
不 是一个通配符。这只是另一个字符文字。因此,此查询将生成行ProductName
,当按字母顺序排序时,等于或大于(排序)文字字符串C%
且等于或小于(排序之前)M%
。 不 会产生Mzzzzzz
之类的行。
它会产生行C&
(在C%
之后排序),但 不 会产生行C!
(排序C%
{1}})但它会生成行M!
(M%
之前的排序)
以下脚本(SQL Server)将说明:
declare @t table
(prodName varchar(10) not null)
insert @t(prodName)values
('C(apy'), ('C!ewrrt'), ('C@asdd'), ('C#qww'),
('C%tty'), ('C&asda'),('C+ASD'),('C-ert'),('C=xx'),
('E(apy'), ('E!ewrrt'), ('F@asdd'), ('J#qww'),
('G%tty'), ('N&asda'),('W+ASD'),('H-ert'),('J=xx'),
('M(apy'), ('M!ewrrt'), ('M@asdd'), ('M#qww'),
('M%tty'), ('M&asda'),('M+ASD'),('M-ert'),('M=xx')
select * from @t Where prodName like '[C-M]%'
select * from @t Where prodName between 'C%' and 'M%'
select * from @t order By prodName