Tengo una columna campaign_name
y el usuario puede escribir y buscar aumentar la palabra clave de cadena sensible. Por ejemplo, ingresaron "adopt a patient"
. Pero dentro de mi mesa el campaign_name
: tengo "adopt-a-patient"
+----------------
|campaign_name |
+----------------
|adopt-a-patient|
-----------------
select * from campaign where campaign_name LIKE '%adopt a patient%';
return ZERO result
Mi colación campaign_name
ya está configurada en utf8_general_ci
. Pero si los usuarios ingresaron exactamente la palabra "adopt-a-patient"
, el resultado regresó como se esperaba.
Cualquier ayuda sería muy apreciada. De todos modos, lo estoy implementando en la aplicación django
. Solo lo estoy depurando dentro de HeidiSQL
.
3 respuestas
Quizás reemplazar los espacios con '%'
haría lo que quieras:
where campaign_name like concat('%', replace('ADOPT A PATIENT', ' ', '%'), '%')
Nota: Esto permite cadenas de cualquier longitud. Si desea permitir solo un carácter, use '_'
en su lugar:
where campaign_name like concat('%', replace('ADOPT A PATIENT', ' ', '_'), '%')
Tiene tres palabras en el filtro de búsqueda: "ADOPTAR", "A", "CAMPAÑA". Es posible que desee hacer una de estas dos cosas:
1) busca todas las filas que coincidan con al menos una palabra
SELECT * FROM campaign
WHERE (campaign_name LIKE '%adopt%') OR (campaign_name LIKE '%a%')
OR (campaign_name LIKE '%patient%);
(debería ser mejor considerar solo palabras de más de 2 caracteres)
2) busca todas las filas que coincidan con las tres palabras:
SELECT * FROM campaign
WHERE (campaign_name LIKE '%adopt%') AND (campaign_name LIKE '%a%')
AND (campaign_name LIKE '%patient%);
Si desea que las palabras buscadas estén en cualquier orden
o
SELECT * FROM campaign WHERE (campaign_name LIKE '%adopt%a%campaigne%');
Si desea que las palabras buscadas estén en el orden en que fueron escritas.
Use %
entre para obtener un resultado perfecto
select * from campaign where campaign_name LIKE '%adopt%a%patient%';
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.