freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.
 

Αναζήτηση string σε πίνακα MySQL με πολλαπλά LIKE


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MySQL
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [8 Μηνύματα]      Bookmarks Tags: mysqlαναζήτησηstring Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
elavd


Μέλος από: 15 Σεπ 2004
Βοηθήματα: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 11 Ιουλ 2012 10:55    Θέμα: Αναζήτηση string σε πίνακα MySQL με πολλαπλά LIKE Απάντηση με παράθεση  Mark this post and the followings unread

Μέσω ενός πεδίου αναζήτησης σε μια σελίδα PHP, στέλνω ένα string $q στη MySQL μου για να δω εάν αυτό το string υπάρχει σε μία από 2 στήλες του πίνακα (col1, col2).

κώδικας:
SELECT col1, col2 FROM table WHERE (col1 LIKE '%$q%' OR col2 LIKE '%$q%')


Το query δουλεύει μεν, αλλά πώς μπορώ να ξέρω σε ποια από τις 2 στήλες βρέθηκε αυτό που ψάχνω (στην col1 ή στην col2);

Πώς μπορώ να το δω αυτό είτε κατευθείαν μέσω κάποιας function της MySQL είτε μέσω της PHP;

Ευχαριστώ προκαταβολικά για τη βοήθεια!

_________________
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 11 Ιουλ 2012 13:04    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Θα κάνεις 2 queries ή θα χρησιμοποιήσεις κάποια από τις string functions (π.χ. strpos).

Last edited by dva_dev on 11 Ιουλ 2012 13:06, edited 1 time in total
elavd


Μέλος από: 15 Σεπ 2004
Βοηθήματα: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 11 Ιουλ 2012 13:05    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Στο 2ο query δηλαδή πώς θα ψάξω τη στήλη στην οποία βρέθηκε στο string;

_________________
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 11 Ιουλ 2012 13:11    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Το 1o query
SELECT col1 FROM table WHERE (col1 LIKE '%$q%)
Το 2o query
SELECT col2 FROM table WHERE (col2 LIKE '%$q%')

ή και τα δύο μαζί
select colname, col1, col2 from
(
select 'col1' as colname, col1, null as col2 from table where (col1 LIKE '%$q%)
union
select 'col2' as colname, null as col1, col2 from table where (col2 LIKE '%$q%)
) tmp
elavd


Μέλος από: 15 Σεπ 2004
Βοηθήματα: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 11 Ιουλ 2012 13:13    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Σε ευχαριστώ πολύ για τη βοήθεια!
Θα το δοκιμάσω!!!

_________________
elavd


Μέλος από: 15 Σεπ 2004
Βοηθήματα: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 11 Ιουλ 2012 13:29    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Επειδή δεν έχω ξανακάνει UNION και χρειάζομαι λίγη βοήθεια στη σύνταξη, αν οι στήλες ήτανε 3 (col1, col2, col3) ο κώδικας αυτός πώς θα έπρεπε να γραφεί;

κώδικας:
select colname, col1, col2 from
(
select 'col1' as colname, col1, null as col2 from table where (col1 LIKE '%$q%')
union
select 'col2' as colname, null as col1, col2 from table where (col2 LIKE '%$q%')
) tmp

_________________
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 11 Ιουλ 2012 13:42    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Τα select που κάνεις union πρέπει να φέρνουν τον ίδιο αριθμό στηλών και να έχουν (ή να μπορεί να μετατραπεί - αυτόματα συνήθως) το ίδιο data type.

Π.χ.
select col1, col2, col3, col4, col5 from ....
union
select col11, col12, col13, col14, col15 from ...
union
select col21, col22, col23, col24, col25 from ...
elavd


Μέλος από: 15 Σεπ 2004
Βοηθήματα: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 11 Ιουλ 2012 13:47    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Σε ευχαριστώ και πάλι!!!

_________________
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [8 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MySQL


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
Πολλα query στην MySQL ή Json? 4 grigorakis4 20 Ιουλ 2014 21:51
alou Εμφάνιση τελευταίου μηνύματος
Πρόβλημα απομακρυσμένης σύνδεσης με την MySql 6 master3763 06 Ιουλ 2014 13:46
giannis17 Εμφάνιση τελευταίου μηνύματος
Εισαγωγή δεδομένων από xls σε mysql 8 selemeles 26 Ιουν 2014 19:39
dva_dev Εμφάνιση τελευταίου μηνύματος
MySQL x Wordpress: Πως εμφανίζεις posts που έχουν συγκεκριμένο "Custom Field Name"? 3 B_Dark 18 Ιουν 2014 20:18
B_Dark Εμφάνιση τελευταίου μηνύματος
MySQL Query error 2 philos 03 Μαη 2014 12:28
nirvana Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 16 Σεπ 2014 04:52 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos