任何人都可以告诉我这是什么星号(*)。 ...tblpersonal where empid like '" & idNumber & "*'"
。如果我用百分号(%)替换它会怎样?
答案 0 :(得分:1)
SQL中的百分比(%)符号表示“匹配任意数量的字符”。例如。 LIKE '%test'
将匹配abctest,LIKE 'test%'
将匹配testabc
Asterisk字符看起来像是文字*,例如匹配以星号结尾的所有empid(取决于SQL的版本 - 见下文)
编辑:有关* vs%
的更深入解答,请参阅Microsoft Jet wildcards: asterisk or percentage sign?答案 1 :(得分:1)
LIKE条件允许您在SQL语句的where子句中使用通配符。这允许您执行模式匹配。 LIKE条件可用于任何有效的SQL语句 - 选择,插入,更新或删除。
您可以选择的模式是:
% 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_';
您可以使用星号(*)代替(%)
我希望对你有所帮助
答案 2 :(得分:0)
这是一个SQL语法问题而不是VB6问题。 : - )
你还没有提到这个与之交谈的数据库(我假设它正在与数据库交谈)。星号在SQL(或VB6字符串)中通常不是特殊的,因此查询将查找empid
like
idNumber
中的任何内容,后跟星号。可能不是故意的。如果您使用%
替换它,那么您将会在empid
变量中查找以开头的任何idNumber
。如果列是数字,则在比较之前将其转换为文本。
例如,如果idNumber
包含100
,那么数据库中的empid
值包含值10
,100
,{ {1}}和1000
,查询将匹配除第一个之外的所有内容,因为“100”,“1000”和“10000”都是10000
“100%”。