تالار گفتمان مانشت
sql - نسخه‌ی قابل چاپ

sql - لهمشد - ۱۱ دى ۱۳۸۹ ۱۲:۳۴ ب.ظ

سلام:
لطفا نگید که این کنکوری نیست فقط جواب بدید خواهشن
سوال:به دستور یزر نگاه کنید ؟
یه رابطه داریم با یه صفت بنام بنام pname
حالا پرس و جوی زیر را ببینید:
کد:
select pname
from prof
where pname like "%علی";
این پرس وجو درسته اما یه ایراد داره و اون اینه که اگه ما بخواهیم نام علی رو جستجو کنیم اونوقت فقط علی تنها رو به ما نمی ده مثلا علی محمد یا علی رضا و.......
از طرفی شاید بگید این پرس وجو را این طور بنویسیم:
کد:
select pname
from prof
where pname like "علی";
در این حالت تعریف عملگر like نقض شده خب حالا باید چه کار کرد Huh

RE: sql - 54m4n3h - 11 دى ۱۳۸۹ ۰۱:۵۲ ب.ظ

منظورتون از نقض شدن تعریف عملگر like چیه؟

RE: sql - لهمشد - ۱۱ دى ۱۳۸۹ ۰۲:۲۶ ب.ظ

به این خا طر که‌: گفته شده که در sql استاندار عملگر like با علامت هایی مثل % و _ اون رو تو صیف می کنند
و در کتاب اقا حق جو در صفحه ۱۲۰ این مثال مطرح شده .

sql - bijibuji - 11 دى ۱۳۸۹ ۰۳:۲۵ ب.ظ

دوست خوب
شما وقتی بخوای توسعه بدی این عملگر رو از % و _ استفاده می کنی.
اگر فقط بنویسی "علی" فقط علی رو در نظر می گیره. چیزی هم نقض نمی شه.

RE: sql - لهمشد - ۱۳ دى ۱۳۸۹ ۰۱:۱۳ ق.ظ

(۱۱ دى ۱۳۸۹ ۰۳:۲۵ ب.ظ)bijibuji نوشته شده توسط:  دوست خوب
شما وقتی بخوای توسعه بدی این عملگر رو از % و _ استفاده می کنی.
اگر فقط بنویسی "علی" فقط علی رو در نظر می گیره. چیزی هم نقض نمی شه.

خب پس بنظر شما چه دلیل وجود داره که اقای دکتر حق جو میگن که:
"متا سفانه اسامی‌تر کیبی مانند " علی محمد " در این قالب می گنجد " در حالی که سوال پرس و جو ایشان این بود که اسا می که نام اول انها علی است ؟؟Exclamation

sql - ف.ش - ۱۳ دى ۱۳۸۹ ۰۹:۳۳ ق.ظ

احتمالا اینجا pname شامل اسم و فامیل افراد است و اگر شما بخواهید افرادی که اسم کوچک آنها علی است مثلا علی احمدی و علی صادقی را جستجو کنید مثلا علی محمد عسگری هم در نظر گرفته میشود.

اگر pname فقط شامل اسم کوچک بود دیگر نیازی به استفاده از like نبود از عملگر = استفاده میکرد.