谁能告诉我这个星号(*)是用来干嘛的?...tblpersonal where empid like '" & idNumber & "*'"。如果我将它替换为百分号(%),结果会是什么?
发布于 2011-04-09 18:57:52
LIKE条件允许您在SQL语句的where子句中使用通配符。这允许您执行模式匹配。LIKE条件可用于任何有效的SQL语句- select、insert、update或delete。
您可以选择的模式包括:
% allows you to match any string of any length (including zero length)
_ allows you to match on a single character接下来,让我们解释一下_通配符是如何工作的。请记住,_只查找一个字符。
例如,
SELECT * FROM suppliers
WHERE supplier_name like 'Sm_th';此SQL语句将返回名称长度为5个字符的所有供应商,其中前两个字符是'Sm‘,最后两个字符是'th’。例如,它可以返回名称为“Smith”、“Smyth”、“Smath”、“Smeth”等的供应商。
这是另一个例子,
SELECT * FROM suppliers
WHERE account_number like '12317_';同样,您可以使用星号(*)而不是(%)
我希望这对你有帮助
发布于 2011-04-09 18:52:55
SQL中的百分号(%)表示“匹配此处的任意数量的字符”。例如,LIKE '%test'将匹配E.g测试,LIKE 'test%'将匹配可测试
星号字符看起来像是匹配文字*,例如匹配所有以星号结尾的empid(取决于SQL的版本-见下文)
编辑:有关*vs%的更深入的答案,请参阅Microsoft Jet wildcards: asterisk or percentage sign?
发布于 2011-04-09 18:56:22
这更多的是一个SQL语法问题,而不是一个VB6问题。:-)
您还没有提到它正在与哪个数据库对话(我假设它正在与一个数据库对话)。在SQL (或VB6字符串)中,星号通常并不特殊,因此查询将查找empid是否为like idNumber中的任何内容,后跟一个星号。这可能不是我们的初衷。如果您将其替换为%,您将查找以idNumber变量中的任何内容开头的任何empid。如果该列是数字列,则在比较之前将其转换为文本。
例如,如果idNumber包含100,并且数据库中的empid值具有值10、100、1000和10000,则查询将匹配除第一个值之外的所有值,因为"100%“、”1000%“和"10000”都是like“100%”。
https://stackoverflow.com/questions/5604554
复制相似问题