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 trial

Databases Modifying Data with SQL Deleting Data From a Database Review and Practice

Andi Muskaj
Andi Muskaj
1,665 Points

Is 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
Giovanni Esposito
7,830 Points

Hi Andi,

You can use the in clause, for example

select * from students s where s.name in ('Andi', 'Rose', 'James');

Yes, 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.

Carsten Dollerup
Carsten Dollerup
9,278 Points

Hi 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,

That stacked overflow answer with INNER JOIN is way too advanced for my newbie self :(