Do not speak Portuguese? Translate this site with Google or Bing Translator
Usando SELECT REPLACE com MySQL

Posted on: March 10, 2021 07:52 PM

Posted by: Renato

Categories: PHP mysql

Views: 1604

Usando SELECT REPLACE com MySQL

Recentemente, precisei comparar o conteúdo de duas colunas em um banco de dados MySQL que armazenava as imagens grandes e pequenas para uma postagem no blog. Todos os pequenos começam com "pequeno" seguido de um número e os maiores com "grande" seguido de um número. Entre na função REPLACE () para se livrar de pequeno / grande e faça a comparação! Neste post, mostro como usar a função replace no MySQL.
Uso básico

A função REPLACE () tem três parâmetros:

a string ou nome da coluna para fazer a substituição
     o que procurar
     e o que substituí-lo

O exemplo a seguir substitui a parte ‘aaa’ de ‘aaa bbb ccc’ por ‘xyz’ e a coluna retornada da consulta SQL conterá ‘xyz bbb ccc’:

SELECT REPLACE('aaa bbb ccc', 'aaa', 'xyz');

Se você estivesse fazendo isso na coluna "foo", você faria o seguinte:

SELECT REPLACE(foo, 'aaa', 'xyz');

Meu exemplo

No meu caso, eu tinha uma coluna chamada ‘image_small’ e ‘image_large’ com dados de exemplo como:

+------------+--------------+-------------+
| content_id | image_small  | image_large |
+------------+--------------+-------------+
|          1 | small1.jpg   | big1.jpg    |
|         26 | small26.jpg  | big26.jpg   |
|         27 | small27.jpg  | big27.gif   |
|         24 | small24.jpg  | big24.jpg   |
|        419 | small208.gif | big419.gif  |
+------------+--------------+-------------+

Eu queria substituir "pequeno" por uma string vazia e "grande" por uma string vazia na consulta de seleção e, em seguida, ver se eles eram iguais em cada coluna. Isso pode ser feito com a seguinte consulta:

SELECT content_id,
      REPLACE( image_small, 'small', '' ) AS image_small,
      REPLACE( image_large, 'big', '' ) AS image_large
FROM content

Os dados resultantes têm a seguinte aparência:

+------------+-------------+-------------+
| content_id | image_small | image_large |
+------------+-------------+-------------+
|          1 | 1.jpg       | 1.jpg       |
|         26 | 26.jpg      | 26.jpg      |
|         27 | 27.jpg      | 27.gif      |
|         24 | 24.jpg      | 24.jpg      |
|        419 | 208.gif     | 419.gif     |
+------------+-------------+-------------+

Estendendo meu exemplo com IF ()

O único problema com o exemplo acima é que agora preciso verificar cada linha e ver quais correspondem e quais não correspondem. A consulta pode ser estendida com um IF () para produzir 1 ou 0 se os nomes dos arquivos (sem as partes pequenas e grandes) corresponderem.

SELECT content_id,
    REPLACE(image_small, 'small', '') as image_small,
    REPLACE(image_large, 'big', '') as image_large,
    IF(REPLACE(image_small, 'small', '') = REPLACE(image_large, 'big', ''), 1, 0) AS matches
FROM content

Isso adiciona uma coluna extra chamada "corresponde", que exibirá 1 se os dois nomes de arquivo corresponderem ou 0 se não forem:

+------------+-------------+-------------+---------+
| content_id | image_small | image_large | matches |
+------------+-------------+-------------+---------+
|          1 | 1.jpg       | 1.jpg       |       1 |
|         26 | 26.jpg      | 26.jpg      |       1 |
|         27 | 27.jpg      | 27.gif      |       0 |
|         24 | 24.jpg      | 24.jpg      |       1 |
|        419 | 208.gif     | 419.gif     |       0 |
+------------+-------------+-------------+---------+

Função que fiz para resolver um problema com &:

$sql = "SELECT id, DATA, arquivo, acionamento, ordem, chassi, autor, gene, categoria, tipo,
REPLACE( descricao, '&', '' ) AS descricao
FROM cadrencfoto WHERE acionamento = '$id' ORDER BY ordem ASC, id ASC;";

 

Agora é muito mais fácil ver quais têm os mesmos nomes de arquivo, uma vez que o texto "pequeno" e "grande" foram removidos combinando as funções REPLACE () e IF () do MySQL.

-https://electrictoolbox.com/mysql-select-replace/

 


2

Share

Donate to Site


About Author

Renato

Developer

Add a Comment

Blog Search


Categories

OUTROS (15) Variados (109) PHP (130) Laravel (157) Black Hat (3) front-end (28) linux (111) postgresql (39) Docker (25) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (54) devops (25) nodejs (5) npm (2) nvm (1) git (8) firefox (1) react (6) reactnative (5) collections (1) javascript (6) reactjs (7) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (0) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (11) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (4) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (1) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (37) Kubernetes (2) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (1) jwt (4) security (2) translate (1) kube (1) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (2) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (2) Architecture (3) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (1) autorizacao (2) authentication (4) authorization (2) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1)

New Articles



Get Latest Updates by Email