Вопрос о синтаксисе VB6 - PullRequest
       1

Вопрос о синтаксисе VB6

1 голос
/ 09 апреля 2011

Может кто-нибудь сказать мне, для чего этот Звездочка (*)....tblpersonal where empid like '" & idNumber & "*'".Что, если я заменю его знаком процента (%), каков будет результат?

Ответы [ 3 ]

1 голос
/ 09 апреля 2011

Условие LIKE позволяет вам использовать подстановочные знаки в предложении where инструкции SQL.Это позволяет выполнять сопоставление с образцом.Условие 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 '.Например, он может вернуть поставщиков, которых зовут «Смит», «Смит», «Смат», «Смет» и т. Д.

Вот еще один пример

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

То жекак вы можете использовать звездочку (*) вместо (%)

Я надеюсь, что это поможет вам

1 голос
/ 09 апреля 2011

Знак процента (%) в SQL говорит «соответствует любому количеству символов здесь». Например. LIKE '%test' будет соответствовать abctest, LIKE 'test%' будет соответствовать testabc

Символ Звездочки выглядит так, как будто он соответствует буквальному символу *, например сопоставление всех empids, заканчивающихся звездочкой (в зависимости от версии SQL - см. ниже)

РЕДАКТИРОВАТЬ: См. Подстановочные знаки Microsoft Jet: звездочка или знак процента? для более подробного ответа на * против%

0 голосов
/ 09 апреля 2011

Это гораздо больше вопрос о синтаксисе SQL, чем вопрос VB6. : -)

Вы не упомянули, с какой базой данных это происходит (я полагаю, что это с БД). Звездочка, как правило, не является особенной в SQL (или строках VB6), и поэтому этот запрос будет искать empid, являющийся like независимо от того, что находится в вашем idNumber, за которым следует звездочка. Вероятно, не то, что было задумано. Если вы замените его на %, вы будете искать любые empid, которые начинаются с независимо от того, что находится в вашей переменной idNumber. Если столбец числовой, он будет преобразован в текст перед сравнением.

Так, например, если idNumber содержит, скажем, 100 и в базе данных есть empid значений со значениями 10, 100, 1000 и 10000, запрос будет соответствовать всем, кроме первого из них, так как "100", "1000" и "10000" все like "100%".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...