• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

SQL WILDCARDS

Reza

متخصص بخش اسکریپت
(کاراکترهايي که نشان دهنده مجموعه اي از کاراکترها مي باشند مثلا *.txt) : زمانی که شما در پایگاه داده خود به دنبال داده ای هستید این عبارت جانشین یک یا چند کاراکترگمشده میشود.
عبارت Wildcards باید حتما با عملگر LIKE در SQL به کار رود​
با SQL میتوان از Wildcard های زیر استفاده کرد:​
Wildcard Description % جانشین هیچ یا چند کاراکتر میشود. _
دقیقا جانشین یک کاراکتر میشود .
[charlist]
جانشین یک تک کاراکتر در آرایه.
[^charlist] or
[[charlist]
هر تک کاراکتر که در آرایه نباشد.
مثال :

نام جدولمان "PERSON" میاشد.​
P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes 3 Pettersen Kari Storgt 20 Stavanger
استفاده از "%" برای جانشینی :

میخواهیم مشخصات فردی را از جدول پیدا کنیم که نام شهر محل زندگی اش با عبارت " SA " آغا ز شود.
از عبارت SELECT به صورت زیر استفاده میکنیم .
SELECT * FROM Persons
WHERE City LIKE 'sa%'
نتیجه به فرم زیر است :​
P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes
حال میخواهیم از جدول "person" مشخصات فردی را بیابیم که نام شهر محل زندگی اش از دارای عبارت " nes" باشد.
به شکل زیر عمل میکنیم :​
SELECT * FROM Persons
WHERE City LIKE '%nes%'
و نتیجه آن به فرم زیر است :​
P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 Sandnes استفاده از "_" برای جانشینی :

میخواهیم مشخصات فردی را از جدول "person" انتخاب کنیم که نام آن شخص با هرحرفی (نامشخص) آغاز شده باشد و در ادامه آن عبارت "la" وجود داشته باشد.
از عبارت select به شکل زیر بهر میگیرم:
SELECT * FROM Persons
WHERE FirstName LIKE '_la'
نتیجه نیز به شکل زیر می باشد.​
P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes
و بعد به دنبال شخصی در جدول "person " میباشیم که نام خانوادگی او با "s" آغاز شده و بعد از چند کاراکتر نامشخص به عبارت "end" رسیده و بازهم بعد از چند کاراکتر نا معلوم با عبارت "on" پایان یابد.​
به دستور زیر دقت کنید:​
SELECT * FROM Persons
WHERE LastName LIKE 'S_end_on'
نتیجه استفاده از این دستور به شکل زیر می باشد.​
P_Id LastName FirstName Address City 2 Svendson Tove Borgvn 23 Sandnes استفاده از [charlist] برای جانشینی :

اینک به دنبال مشخصات فردی هستیم که نام او در جدول" person" با یکی از حروف "s" یا "b" یا "p" آغاز شود
برای رسیدن به نتیجه مطلوب از دستور زیر استفاده میکنیم :​
SELECT * FROM Persons
WHERE LastName LIKE '[sbp]%'
نتیجه :​
P_Id LastName FirstName Address City 2 Svendson Tove Borgvn 23 Sandnes 3 Pettersen Kari Storgt 20 Stavanger
و حالا برخلاف بالا میخواهیم مشخصات فردی را که نامش با هیچ یک از حروف "s" یا "b" یا "p" آغاز نشود را از جدول بیابیم.
برای اینکار از دستور زیر استفاده میکنیم .​
SELECT * FROM Persons
WHERE LastName LIKE '[ !sbp ]%'
که نتیجه مطلوب زیر را میدهد.​
P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes
 
بالا