VB6语法问题

时间:2011-04-09 10:48:43

标签: sql vb6

任何人都可以告诉我这是什么星号(*)。 ...tblpersonal where empid like '" & idNumber & "*'"。如果我用百分号(%)替换它会怎样?

3 个答案:

答案 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值包含值10100,{ {1}}和1000,查询将匹配除第一个之外的所有内容,因为“100”,“1000”和“10000”都是10000“100%”。