نمایش نتایج 1 تا 37 از 37

نام تاپیک: پیدا کردن "نام نام خانوادگی" در فیلد های "نام" ، "نام خانوادگی"

  1. #1
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268

    پیدا کردن "نام نام خانوادگی" در فیلد های "نام" ، "نام خانوادگی"

    با سلام
    یک تیبل با دو فیلد داریم با نام های زیر:

    name
    family

    دو تا رکورد هم توی این تیبل هست با مقادیر زیر :



    1:
    name: ali
    family: haeri

    2:
    name: ali reza
    family: haeri


    حالا فرضا یک نفر میخواد عبارت "ali haeri" رو جستجو کنه، من هم میخوام فقط و فقط رکورد اول نمایش داده بشه
    چیکار باید بکنم؟

  2. #2
    کاربر دائمی آواتار arshia_
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران-شهر فرزانگان( بروجرد )
    پست
    1,226
    اگر منظورت این است که جستجوی دقیق باشه این کد رو امتحان کن:
    SELECT * FROM TBLTEST WHERE NAME LIKE 'ALI' AND FAMILY LIKE 'HAERI' <----CODE
    یا این روش :
    SELECT * FROM TBLTEST WHERE NAME = 'ALI' AND FAMILY= 'HAERI'

  3. #3
    ببین این کد جوابت رو میده

    Select * From TableName Where (Name+' '+Family)='ali haeri'
    You never know what you can do until you try

  4. #4
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    اگر منظورت این است که جستجوی دقیق باشه این کد رو امتحان کن:
    SELECT * FROM TBLTEST WHERE NAME LIKE 'ALI' AND FAMILY LIKE 'HAERI' <----CODE
    یا این روش :
    SELECT * FROM TBLTEST WHERE NAME = 'ALI' AND FAMILY= 'HAERI'
    بابا دست شما درد نکنه! قراره یک نفر توی یک فیلد تکست (مثلا) عبارت "ali Haeri" رو سرچ کنه!
    من از کجا باید بفهمم کدوم نامه و کدوم فامیل؟ (یعنی اگه مثلا یارو جستجو کنه : "سید علی رضا طبیب زاده" چجوری میشه فهمید کدوم قسمت نام و کدوم قسمت فامیله؟)

    ببین این کد جوابت رو میده

    کد:
    Select * From TableName Where (Name+' '+Family)='ali haeri'
    خیلی ممنون از پاسختون ، ولی اینم جواب نداد! یعنی هر دو رکورد رو آورد!!!! (من انتظار داشتر ارور بده) :)

  5. #5
    نقل قول نوشته شده توسط tabib_m
    خیلی ممنون از پاسختون ، ولی اینم جواب نداد! یعنی هر دو رکورد رو آورد!!!! (من انتظار داشتر ارور بده) :)
    خوب اول و آخر ورودی یه کاراکتر بذار و بعد چکش کن اینجوری دیگه می بندیش.

  6. #6
    خیلی ممنون از پاسختون ، ولی اینم جواب نداد! یعنی هر دو رکورد رو آورد!!!! (من انتظار داشتر ارور بده) :)
    مطمئنی این Query هر دو رکورد رو آورد؟؟؟؟؟؟؟؟؟
    مگه همچین چیزی ممکنه؟؟؟؟؟
    You never know what you can do until you try

  7. #7
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    خوب اول و آخر ورودی یه کاراکتر بذار و بعد چکش کن اینجوری دیگه می بندیش.
    یعنی جی؟
    مطمئنی این Query هر دو رکورد رو آورد؟؟؟؟؟؟؟؟؟
    مگه همچین چیزی ممکنه؟؟؟؟؟
    منم از همینش تعجب کردم!!!!
    خوب خودت خیلی سریع میتونی با phpmyadmin تست کنی!

  8. #8
    نقل قول نوشته شده توسط tabib_m
    یعنی جی؟
    منظورم این بود که برای اینکه دنباله ی رشته کاراکترت رو ببندی از یه کاراکتر در دو طرفش استفاده کن. مثلا * یا هر چیز دیگه. البته شاید راه خوبی نباشه ولی فکر کنم جواب بده:

    Select * From TableName Where ('*'+Name+' '+Family+'*')='*ali haeri*'

  9. #9
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    بازم هر دو رو آورد :)

  10. #10
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    دوستان راه دیگه ای سراغ ندارن؟

  11. #11
    میشه کدی رو که استفاده می کنید عینا اینجا بنویسیدش؟
    You never know what you can do until you try

  12. #12
    دوست عزیز از اونجایی که من فهمیدم شما میگید که اگر هر دو تا مشخصات در یک textbox داده میشه که این عملا غیر ممکنه چون این غضیه سیستم های خبره هستش که با استفاده از پردازش کاراکتری حدث بزنه که کدام قسمت اسم و کدام قسمت فامیل هستش اگر در دو text box جداگانه اسم و فایل را بگیری و دنبالش بگردی یعنی select کنی حتما به نتیجه میرسی و دنبال اون یکی هم نگرد چون باید پروفسر تشنه لب یا دکتر میر محسنی و یا دکتر شهریار لطفی را باید ببینی و این پروژه دکترا هستش

  13. #13
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    میشه کدی رو که استفاده می کنید عینا اینجا بنویسیدش؟
    منظورت رو نمیفهمم. چه کدی رو باید اینجا بنویسم؟ بحث فقط بحث یک select ه.

    دوست عزیز از اونجایی که من فهمیدم شما میگید که اگر هر دو تا مشخصات در یک textbox داده میشه که این عملا غیر ممکنه چون این غضیه سیستم های خبره هستش که با استفاده از پردازش کاراکتری حدث بزنه که کدام قسمت اسم و کدام قسمت فامیل هستش اگر در دو text box جداگانه اسم و فایل را بگیری و دنبالش بگردی یعنی select کنی حتما به نتیجه میرسی و دنبال اون یکی هم نگرد چون باید پروفسر تشنه لب یا دکتر میر محسنی و یا دکتر شهریار لطفی را باید ببینی و این پروژه دکترا هستش
    فکر کنم درست منظور من رو متوجه نشدی. چون من دنبال این نیستم که اسم و فامیل رو جدا کنم!! من فقط میخوام ، دو تا فیلد با هم ترکیب بشن و بعد عبارت مورد نظر توی اون فیلد جستجو بشه. دیگه نمیدونم چجوری توضیح بدم.

  14. #14
    شما منظورت اینه که کل کلمه مثلا " علیرضا دوراندیشیان " در یک text box داده بشه و تو بفهمی که " علیرضا " اسم طرفه و " دوراندیشیان " فامیل بعد اونها را از هم جدا کنی و بعد تو 2 تا متغیر قرار بدی و در 2 فیلد جدا گانه دنبال اونها بگردی درسته؟

  15. #15
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    Tehran-TMU
    پست
    790
    شاید با concat به نتیجه برسی

  16. #16
    منظورتون از concat چی هستش یک جایی خونده بودم ولی یادم رفته فکر کنم مباحثه جاوا باید باشه

  17. #17
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    Tehran-TMU
    پست
    790
    راهنمای MySQL رو ببینید

  18. #18
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    شما منظورت اینه که کل کلمه مثلا " علیرضا دوراندیشیان " در یک text box داده بشه و تو بفهمی که " علیرضا " اسم طرفه و " دوراندیشیان " فامیل بعد اونها را از هم جدا کنی و بعد تو 2 تا متغیر قرار بدی و در 2 فیلد جدا گانه دنبال اونها بگردی درسته؟
    نه درست نیست.
    اینی که تو میگی یک راه حل هست ، و کار من رو هم راه میندازه ، اما موفقیت این راه حل تقریبا محاله، چون تشخیص نام از نام خانوادگی کار آسونی نیست.

    من فقط میخوام یک عبارت ، در دو فیلد به صورت مشترک جستجو بشه. یعنی انگار که (تأکید میکنم : انگار که) یک فیلد وجود داره ، و اینطوری میتونیم بنویسیم:


    select * from `table_name` where `NameFamily`='$search';


    امیدوارم دیگه ایندفعه منظورم رو فهمیده باشی.

    شاید با concat به نتیجه برسی
    به راهنمای مای اس کیو ال هم مراجعه کردم ، اما چیز زیادی نفهمیدم ، ببخشید ، انگلیسیم ضعیفه .

  19. #19
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    Tehran-TMU
    پست
    790
    این کتاب جالب تر توضیح داده:
    OReilly - MySQL Cookbook.chm

    3.6 Combining Columns to Construct Composite Values
    3.6.1 Problem
    You want to display values that are constructed from multiple table columns.

    3.6.2 Solution
    One way to do this is to use CONCAT( ). You might also want to give the column a nicer name by using an alias.

    3.6.3 Discussion
    Column values may be combined to produce composite output values. For example, this expression concatenates srcuser and srchost values into email address format:

    CONCAT(srcuser,'@',srchost)
    Such expressions tend to produce ugly column names, which is yet another reason why column aliases are useful. The following query uses the aliases sender and recipient to name output columns that are constructed by combining usernames and hostnames into email addresses:

    mysql> SELECT
    -> DATE_FORMAT(t,'%M %e, %Y') AS date_sent,
    -> CONCAT(srcuser,'@',srchost) AS sender,
    -> CONCAT(dstuser,'@',dsthost) AS recipient,
    -> size FROM mail;
    +--------------+---------------+---------------+---------+
    | date_sent | sender | recipient | size |
    +--------------+---------------+---------------+---------+
    | May 11, 2001 | barb@saturn | tricia@mars | 58274 |
    | May 12, 2001 | tricia@mars | gene@venus | 194925 |
    | May 12, 2001 | phil@mars | phil@saturn | 1048 |
    | May 13, 2001 | barb@saturn | tricia@venus | 271 |
    ...

  20. #20
    اگر شما سورس برنامه html و php را اینجا بزارین مشکل حل میشه من فکر میکنم مشکل شما مفاهیم data base management هستش

  21. #21
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    mysql> SELECT
    -> DATE_FORMAT(t,'%M %e, %Y') AS date_sent,
    -> CONCAT(srcuser,'@',srchost) AS sender,
    -> CONCAT(dstuser,'@',dsthost) AS recipient,
    -> size FROM mail
    راستش رو بخواید من از این نوع سلکت چیزی سر در نمیارم .
    در مورد متن انگلیسی هم که گفتم . بازم .
    اگه میتونید *خودتون* توضیح بدید ، خیلی ممنون میشم.

    اگر شما سورس برنامه html و php را اینجا بزارین مشکل حل میشه من فکر میکنم مشکل شما مفاهیم data base management هستش
    من دیگه واقعا نمیدونم چجوری شیر فهمت کنم.
    عزیز دل من ، من فقط با یک تیبل و یک سلکت کار دارم ، همین.
    من تستم رو دارم توی phpmyadmin انجام میدم.
    سؤالی که من اینجا پرسیدم از این حد خارج تر نیست.
    من یک تیبل دارم ، با فیلدها و مقادیری که گفتم، و حالا میگم چجوری باید دستور سلکت رو بدم که اون نتیجه ی مطلوب رو بدست بیارم.

    خیلی ممنون.

  22. #22
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    کسی از دوستان راهی سراغ نداره؟

  23. #23
    کاربر دائمی آواتار I,Nobody
    تاریخ عضویت
    خرداد 1385
    محل زندگی
    کانادا
    پست
    464
    اول اون فیلدهای name و family رو توی تیبلت FULLTEXT کن. بعدش این رو تست کن :

    SELECT * FROM `mytable` WHERE MATCH(name,family) AGAINST('%$SERACH%' WITH QUERY EXPANSION)

  24. #24
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    جواب نداد. :(

    یعنی ارور داد.


    Database test - table fam running on localhost

    Error

    SQL-query :

    SELECT * FROM `fam` WHERE MATCH(name,family) AGAINST('%ali heidari%' WITH QUERY EXPANSION) LIMIT 0, 30

    MySQL said:

    Something is wrong in your syntax près de 'WITH QUERY EXPANSION) LIMIT 0, 30' à la ligne 1


  25. #25
    کاربر دائمی آواتار I,Nobody
    تاریخ عضویت
    خرداد 1385
    محل زندگی
    کانادا
    پست
    464
    ورژن mysqlت چنده؟
    اگه زیر 4.1 هست، اون عبارت WITH QUERY EXPANSION رو بردار

  26. #26
    از CONCAT(str1,str2,...) استفاده کردی یا نه؟
    مثال:

    mysql> SELECT CONCAT('My', 'S', 'QL');
    -> 'MySQL'


    به اینجا هم یه نگاهی بنداز ببین مشکلت رو حل می کنه؟
    http://dev.mysql.com/doc/refman/5.1/...functions.html

  27. #27
    کاربر دائمی آواتار I,Nobody
    تاریخ عضویت
    خرداد 1385
    محل زندگی
    کانادا
    پست
    464
    ای ول.
    رضا کمک خوبی کرد.
    اینو تست کن :

    SELECT CONCAT_WS( ' ', first_name, last_name ) AS full_name
    FROM `my_table`

  28. #28
    من اینو تست کردم:

    SELECT *
    FROM ali
    WHERE (

    SELECT concat( name, ' ', family )
    ) = 'ali haeri'



    جواب میده :)

  29. #29
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    ورژن mysqlت چنده؟
    اگه زیر 4.1 هست، اون عبارت WITH QUERY EXPANSION رو بردار
    ورژن مای اس کیو ال من اینه :
    3.23.49-max-nt

    اون عبارت رو هم برداشتم ، این دفعه هر دو رکورد رو اورد. :(

    ای ول.
    رضا کمک خوبی کرد.
    اینو تست کن :

    کد:
    SELECT CONCAT_WS( ' ', first_name, last_name ) AS full_name
    FROM `my_table`
    این هم جواب نداد :( . یعنی یک نتیجه ی عجیبی (برای من) داشت . به تصویر ضمیمه نگاه کنید.

    SELECT * 
    FROM ali
    WHERE (

    SELECT concat( name, ' ', family )
    ) = 'ali haeri'

    این رو هم تست کردم و ارور زیر رو داد :
    Error

    SQL-query :

    SELECT * FROM `fam` WHERE (SELECT concat( name, ' ', family )
    ) = 'ali haeri' LIMIT 0, 30

    MySQL said:


    Something is wrong in your syntax près de 'SELECT concat( name, ' ', family )
    ) = 'ali haeri' LIMIT 0, 30' à la ligne 1



    البته فکر میکنم این مشاکل به خاطر ورژن مای اس کیو ال باشه .
    در هر حال از کمک همه تون خیلی خیلی ممنونم.

    در ضمن ، لینکی که آقای راد دادن خیلی باحال بود ، دستتون درد نکنه :)
    عکس های ضمیمه عکس های ضمیمه

  30. #30
    خواهش می کنم.
    طبیب جان mysql ورژن بالاتر نصب کن خوب. اینجوری خیلی محدود میشی ها!

    بعدش هم اینو تست کن :

    SELECT concat( name, ' ', family ) = 'ali haeri'
    FROM ali


    دستور concat توی ورژنی که داری هم کار باید بکنه.

  31. #31
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    خیلی ممنون.
    باز هم یک نتیجه ی عجیب دیگه! :(
    عکس های ضمیمه عکس های ضمیمه

  32. #32
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    نتیجه اش عجیب نیست...
    نسخه MySQL شما قدیمی است و subselect رو پشتیبانی نمی کنه، البته نیازی هم به استفاده از subselect نیست!!!
    این رو تست کن:

    SELECT * FROM table_name
    WHERE CONCAT(name, ' ', family) = 'ali haeri'


    خوش باشی :)
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  33. #33
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268

    احسنت ، خیلی باحالی :)

    ایول
    خیلی خوشم اومد، درست شد


    واقعا دست شما درد نکنه
    برای من شده بود یک دردسر
    باز هم ممنون
    امیدوارم در تمامی مراحل زندگیتون همچنان موفق و سربلند باشید :)

  34. #34
    از هم یک نتیجه ی عجیب دیگه!
    نتیجه عجیب نبود درست بود!
    like وقتی روی رکورد ها اعمال میشه سطرهای درست رو 1 و غلط ها رو 0 برمی گردونه.

  35. #35
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    به هر حال از تمامی دوستان به خاطر کمکی که کردن ممنونم.


    پ.ن: میبخشید فضولی میکنم، آقایون reza_rad و oxygenws با هم نسبتی دارید؟؟

  36. #36
    خواهش می کنم :)

    آقایون reza_rad و oxygenws با هم نسبتی دارید؟؟
    نسبت که نه. ولی امیدجان استاد ما هستند:)

  37. #37
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    چوب کاری نفرمایید...
    سپاسگذارم.
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

تاپیک های مشابه

  1. str_replace , ereg_replace برای "n\" و "r\" و " "
    نوشته شده توسط sweb در بخش PHP
    پاسخ: 1
    آخرین پست: یک شنبه 29 بهمن 1385, 16:30 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •