På vilket sätt fungerar det inte? Är det konkateneringen med contact_surname där contact_surname är NULL? I så fall hade jag gjort så här:
... WHERE concat(contact_name, ' ', coalesce(contact_surname, '')) LIKE ...
mvh
Databaser & SQLur Databashanterare & SQL
1 svar · 1 266 visningar · startad av Forsberg
Hej,
Har en MySQL databas med kontakter som ser ut som följande:
Kolumner:
contact_id --- int(11)
contact_name --- varchar(128)
contact_surname --- varchar(128)
Nu vill jag sätta ihop kolumnerna "contact_name" och "contact_surname" och sedan söka mot det innehållet OM efternamnet innehåller någon data. Om efternamnet INTE innehåller någon data så vill jag bara söka mot "contact_name".
OM "contact_surname" har data:
----> namn = contact_name + ' ' + contact_surname
OM "contact_surname" INTE har data:
----> namn = contact_name
Sedan vill jag kunna köra ett SQL kommando enligt:
SELECT foo FROM contacts WHERE namn LIKE 'söksträng%';
Är detta något som går att lösa med ett SQL kommando? Detta är vad jag har i dag och det fungerar inte som jag önskar:
SELECT foo FROM contacts WHERE concat(contact_name, ' ', contact_surname) LIKE '" . $searchstring . "%' OR contact_name LIKE '" . $searchstring . "%' ORDER BY contact_name ASC
Tacksam för svar! Har kört fast lite på detta!
Mvh
Forsberg
På vilket sätt fungerar det inte? Är det konkateneringen med contact_surname där contact_surname är NULL? I så fall hade jag gjort så här:
... WHERE concat(contact_name, ' ', coalesce(contact_surname, '')) LIKE ...
mvh