2011-04-09 5 views
1

Quelqu'un peut-il me dire à quoi sert cet astérisque (*). ...tblpersonal where empid like '" & idNumber & "*'". Que faire si je le remplace par le signe pourcentage (%), quel serait le résultat?VB6 Syntaxe Question

+0

« » quel serait le résultat? « » ce qui se passe lorsque vous essayez? – Mat

+0

notant résultat cette requête –

+0

Cela ressemble à du code SQL plutôt que VB - quel moteur SQL est-il? Mysql? MSSQL? Oracle? – Rich

Répondre

1

La condition LIKE vous permet d'utiliser des caractères génériques dans la clause where d'une instruction SQL. Cela vous permet d'effectuer une correspondance de modèle. La condition LIKE peut être utilisée dans toute instruction SQL valide: sélectionnez, insérez, mettez à jour ou supprimez.

Les modèles que vous pouvez choisir sont:

% allows you to match any string of any length (including zero length) 

_ allows you to match on a single character 

Ensuite, nous allons expliquer comment fonctionne le caractère générique _. Rappelez-vous que le _ ne cherche qu'un seul personnage.

Par exemple,

SELECT * FROM suppliers 
WHERE supplier_name like 'Sm_th'; 

Cette instruction SQL retournerait tous les fournisseurs dont le nom est de 5 caractères, où les deux premiers caractères est « Sm » et les deux derniers caractères est « e ». Par exemple, il pourrait renvoyer les fournisseurs dont le nom est 'Smith', 'Smyth', 'Smath', 'Smeth', etc.

Voici un autre exemple,

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

De la même façon u peut utiliser astérisque (*) au lieu de (%)

J'espère que son aide pour vous

1

Le signe Percent (%) dans SQL indique "correspondre n'importe quel nombre de caractères ici". Par exemple. LIKE '%test' correspondra à abctest, LIKE 'test%' correspondra à testabc

Le caractère Asterisk ressemble à un littéral *, par ex. correspondant à tous empids se terminant par un astérisque (selon la version de SQL - voir ci-dessous)

EDIT: Voir Microsoft Jet wildcards: asterisk or percentage sign? pour une plus Décroché profondeur sur * vs%

+0

J'ai voté en fonction du lien fourni à un autre sujet. Il serait cependant préférable d'indiquer que les jokers LIKE varient dans Jet SQL selon que le fournisseur Jet OLEDB vs. DAO (ou ADO avec le pilote Access ODBC) est utilisé. – Bob77

+1

La réalité varie même plus loin. Lorsque vous utilisez le pilote ODBC Jet 4.0 Access, vous pouvez éventuellement utiliser la nouvelle syntaxe SQL-92: http://msdn.microsoft.com/en-us/library/ms712547(VS.85).aspx – Bob77

+0

@Bob Riemersma: merci, J'ai édité la réponse liée en conséquence. – onedaywhen

0

Cela est beaucoup plus une question de syntaxe SQL qu'une VB6 un. :-)

Vous n'avez pas mentionné à quelle base de données il s'agit (je suppose qu'il est en train de parler à une base de données). L'astérisque n'est généralement pas spécial dans SQL (ou les chaînes VB6), et donc cette requête recherchera empid étant like quoi que ce soit dans votre idNumber suivi d'un astérisque. Probablement pas ce qui était prévu. Si vous le remplacez par un %, vous chercherez tout empid que commence par ce qui est dans votre variable idNumber. Si la colonne est numérique, elle sera convertie en texte avant la comparaison.

Ainsi, par exemple, si idNumber contient 100, par exemple, et il y a des empid valeurs dans la base de données avec les valeurs 10, 100, 1000 et 10000, la requête correspondrait tous, mais le premier de ceux-ci, depuis « 100 » , "1000" et "10000" sont tous like "100%".