Bueno, es uno de esos casos medio espantosos de performance. Lamentablemente es muy habitual...
Lo que tienes es lo que se denomina "campo multivaluado", que están prohibidos en las bases de datos relacionales, pero infortunadamente es la forma en que la inmensa mayoría de los desarrolladores sin bases firmes en arquitectura de datos pone los campos de "tags",.
En fin.
Mira, en forma genérica, todos los DBMS, cualquiera que uses reconocerá esta sinaxis:
Código SQL:
Ver originalSELECT *
FROM blog_posts
WHERE post_tags LIKE '%android%'
El problema es que es un método súmamente ineficiente. Su performance es un espanto para cualquier DBMS y especialmente con tablas que contengan muchos registros, porque lo que hace esa consulta es un
full table scan (lectura completa de
toda la tabla), para analizar uno a uno ese campo en
todos los registros.
Por otro lado, si usases por ejemplo MySQL, existe una función capaz de hacer un barrido más performántico, e incluso se puede plantear usar indices FULLTEXT, que podrían mejorar todo.
Nota: Con el LIKE usado con dos comodines, como te lo pongo, no hay índice que sirva.