2011-04-09 90 views
1

任何人都可以告訴我這個星號(*)是什麼。 ...tblpersonal where empid like '" & idNumber & "*'"。如果用百分號(%)替換它,結果如何呢?VB6語法問題

+0

「」結果會是什麼?「」當你嘗試時會發生什麼? – Mat 2011-04-09 10:51:37

+0

注意到這個查詢的結果 – 2011-04-09 10:53:11

+0

這看起來像SQL而不是VB代碼 - 它是什麼SQL引擎? MySQL的? MSSQL?甲骨文? – Rich 2011-04-09 10:54:41

回答

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個字符,其中前兩個字符是「釤」,最後兩個字符是「日」的所有供應商。例如,它可以返回供應商的名稱爲「史密斯」,「史密斯」,「Smath」,「Smeth」等

下面是另一個例子,

SELECT * FROM suppliers 
WHERE account_number like '12317_'; 

用同樣的方法ü可以使用星號(*)代替(%)

我希望對你有所幫助

1

SQL中的百分比(%)符號表示「在此匹配任意數量的字符」。例如。 LIKE '%test'將匹配abctest,LIKE 'test%'將匹配testabc

Asterisk字符看起來像匹配文字*,例如,匹配帶星號結尾的所有empids(取決於SQL版本 - 見下文)

編輯:深入答案更見Microsoft Jet wildcards: asterisk or percentage sign?上* VS%

+0

我基於提供給另一個線程的鏈接對此投了票。如果實際上聲明LIKE通配符在Jet SQL中有所不同,取決於Jet OLEDB提供程序與DAO(或帶有Access ODBC驅動程序的ADO)是否正在使用,它會好得多。 – Bob77 2011-04-10 05:58:54

+1

現實情況甚至有所不同。當使用Jet 4.0 Access ODBC驅動程序時,您可以選擇使用新的SQL-92語法:http://msdn.microsoft.com/en-us/library/ms712547(VS.85).aspx – Bob77 2011-04-10 06:03:47

+0

@Bob Riemersma:謝謝,我相應地編輯了鏈接的答案。 – onedaywhen 2011-04-11 11:22:42

0

這是更比一個SQL語法問題VB6一個。 :-)

你還沒有提及這個數據庫正在與誰交談(我假設它正在與數據庫交談)。星號在SQL(或VB6字符串)中通常不是特殊的,因此查詢會查找empid,即like,無論您在idNumber後面是星號。可能不是什麼意圖。如果你用%代替它,你會尋找任何empid開始無論你在idNumber變量。如果該列是數字,則在比較之前它將被轉換爲文本。

因此,舉例來說,如果idNumber包含100,再說了,有empid值與值101001000數據庫,10000,查詢會匹配所有,但第一的,因爲「100」 ,「1000」和「10000」均爲like「100%」。