Alguien que me ayude en este codigo

Desde
22 Ago 2010
Mensajes
6.590
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Hola primero que nada les agradeceria si me ayudan de ante mano yo quiero ir aprendiendo un poco de php pero hay veces que necesito ayuda en algunos codigos, les paso mi duda

tengo actualmente este codigo que me paso cicklow

mysql_query("DELETE FROM tabla WHERE (length(description)<=200 OR description='') AND description NOT LIKE '%JoS%';");

ese me ha funcionado de maravilla para borrar descripciones en blanco y menores de 200

pero yo quiero ahora borrar en el campo de description los registros con menos de 100 caracteres pero como hacer para que cuente solo las letras y no los espacion blancos
 

shadowhck

Lambda
Programador
Verificado por Whatsapp
Desde
18 Ago 2009
Mensajes
2.772
Lo veo un poco complicado de realizar con puro MySQL. Si encuentras solucion a esto con MySQL, seguro sera algo lento. Y la forma correcta es manejar los datos con PHP.

Mi recomendacion es filtrar el registro de estos datos antes de guardarlos en la BD, de esta manera les aplicas cualquier filtro, que podria ser un contador de palabras por ejemplo (str_word_count(..)...).

Incluso al manejar los datos con PHP podrias eliminar temporalmente los espacios en blanco del campo, y contar todos los caracteres, y si acierta no se hace nada con este campo, se pueden usar Arrays junto con los ID, y así cuando se encuentre un elemento, este se elimina mediante una consula SQL sencilla.

Pero mas que nada necesito saber el entorno en el que manejas los datos, y el fin.
 

blogers

Pi
SEO
Desde
22 Ago 2010
Mensajes
6.590
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Lo veo un poco complicado de realizar con puro MySQL. Si encuentras solucion a esto con MySQL, seguro sera algo lento. Y la forma correcta es manejar los datos con PHP.

Mi recomendacion es filtrar el registro de estos datos antes de guardarlos en la BD, de esta manera les aplicas cualquier filtro, que podria ser un contador de palabras por ejemplo (str_word_count(..)...).

Incluso al manejar los datos con PHP podrias eliminar temporalmente los espacios en blanco del campo, y contar todos los caracteres, y si acierta no se hace nada con este campo, se pueden usar Arrays junto con los ID, y así cuando se encuentre un elemento, este se elimina mediante una consula SQL sencilla.

Pero mas que nada necesito saber el entorno en el que manejas los datos, y el fin.


Gracias [MENTION=557]shadowhck[/MENTION] eres un capo del php te debo una :star2:
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.102
Hola primero que nada les agradeceria si me ayudan de ante mano yo quiero ir aprendiendo un poco de php pero hay veces que necesito ayuda en algunos codigos, les paso mi duda

tengo actualmente este codigo que me paso cicklow



ese me ha funcionado de maravilla para borrar descripciones en blanco y menores de 200

pero yo quiero ahora borrar en el campo de description los registros con menos de 100 caracteres pero como hacer para que cuente solo las letras y no los espacion blancos

Insertar CODE, HTML o PHP:
mysql_query("DELETE FROM  tabla WHERE (CHAR_LENGTH(REPLACE(description,' ',''))<=200 OR description='') AND description NOT LIKE '%JoS%';");
tan simple como eso...
Si kieres esperimentar mas: MySQL :: MySQL 5.0 Reference Manual :: 12.3 Funciones para cadenas de caracteres
 

blogers

Pi
SEO
Desde
22 Ago 2010
Mensajes
6.590
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.

shadowhck

Lambda
Programador
Verificado por Whatsapp
Desde
18 Ago 2009
Mensajes
2.772
Insertar CODE, HTML o PHP:
mysql_query("DELETE FROM  tabla WHERE (CHAR_LENGTH(REPLACE(description,' ',''))<=200 OR description='') AND description NOT LIKE '%JoS%';");
tan simple como eso...
Si kieres esperimentar mas: MySQL :: MySQL 5.0 Reference Manual :: 12.3 Funciones para cadenas de caracteres

Es parecida a mi solucion. xD

Insertar CODE, HTML o PHP:
mysql_query("
DELETE FROM tabla
WHERE
    (
        (
            length(REPLACE(description, ' ', '')) <= 100
            AND
            length(description) <= 200
        )
        OR
        description = ''
    )
    AND
    description NOT LIKE '%JoS%';
");
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.102
Es parecida a mi solucion. xD

Insertar CODE, HTML o PHP:
mysql_query("
DELETE FROM tabla
WHERE
    (
        (
            length(REPLACE(description, ' ', '')) <= 100
            AND
            length(description) <= 200
        )
        OR
        description = ''
    )
    AND
    description NOT LIKE '%JoS%';
");

si lo que pasa con lenght es que cuenta los bytes como 2... si tienes un texto de 5 caracteres char_lenght cuenta 5, lenght cuenta 10
 

shadowhck

Lambda
Programador
Verificado por Whatsapp
Desde
18 Ago 2009
Mensajes
2.772
si lo que pasa con lenght es que cuenta los bytes como 2... si tienes un texto de 5 caracteres char_lenght cuenta 5, lenght cuenta 10

Bueno, no conocia ese detalle. Al menos lo aclaraste. :encouragement:

Edito: Aunque estoy seguro que funciona como debería, lo probe en MariaDB 5.5 con HeidiSQL.
 
Última edición:

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.102
Bueno, no conocia ese detalle. Al menos lo aclaraste. :encouragement:

Edito: Aunque estoy seguro que funciona como debería, lo probe en MariaDB 5.5 con HeidiSQL.

sisi funciona bien. si el code 1 yo se lo pase. solo que ese es la dif entre los dos.
 
Arriba