Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialAndi Muskaj
1,665 PointsIs there a way to combine the three names using "LIKE IN"?
Is there a way to combine the three names, instead of using "OR name LIKE..." three times?
Thanks!
2 Answers
Giovanni Esposito
7,830 PointsHi Andi,
You can use the in clause, for example
select * from students s where s.name in ('Andi', 'Rose', 'James');
Carsten Dollerup
9,278 PointsHi Andi,
There is not, but as you get to more advanced methods (INNER JOIN) you can make statements that have the same effect. Look at this thread on stackedoverflow and go down to the answer from Adrian Staander who's answer I'm referring to losely here :-) stacked overflow
Best regards,
Seokhyun Wie
Full Stack JavaScript Techdegree Graduate 21,606 Points@Carsten Dollerup Thanks ;)
JASON LEE
17,352 PointsThat stacked overflow answer with INNER JOIN is way too advanced for my newbie self :(
Michael Kristensen
Full Stack JavaScript Techdegree Graduate 26,251 PointsMichael Kristensen
Full Stack JavaScript Techdegree Graduate 26,251 PointsYes, but the small problem with doing it like this, is that you cannot use the '%'-Wildcard Operator; meaning that you would select all the names where, for example, James is included, whether it is as a first name, middle name or as part of the last name; Jameson.
SELECT * FROM people WHERE name LIKE "Andi%" OR name LIKE "Rose%" OR name LIKE "James%"; - specifically targets the rows in people where their name STARTS with the search phrase, while;
SELECT * FROM people WHERE name IN ("Andi", "Rose", "James"); - just takes any that INCLUDES the search phrase.
The most efficient way of dealing with this confusion, would probably be to define the database schema such that it has separate columns for first_name, middle_name and last_name, to begin with.