Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Sql di mana klausa tidak berfungsi

PEMBARUAN:OP memiliki karakter baris baru yang tidak terlihat (\n) dalam kumpulan datanya. @EternalPoster (dan saya) mengira bahwa Trim akan menghapus semua spasi , tetapi Dokumentasi Trim MySql menentukan spasi awal &akhir .

Inilah yang saya lakukan:

-- for http://stackoverflow.com/questions/27203169/sql-query-not-work-for-google-com
-- and http://stackoverflow.com/questions/27202157/sql-where-clause-not-working

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

-- --------------------------------------------------------

DROP TABLE IF EXISTS `sites`;

--
--  structure for table `sites`
--
CREATE TABLE IF NOT EXISTS `sites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `site` varchar(32) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- data for table `sites`
--
INSERT INTO `sites` (`id`, `site`) VALUES
(1, 'xyz.com'),
(2, 'google.com'),
(3, 'example.com');

--
-- select google
--
SELECT * 
FROM sites 
WHERE site = 'google.com'
;

--
-- select google
--
SELECT * 
FROM sites 
WHERE site = 'google.com'
;

dan inilah yang saya dapatkan:

Jadi dalam kasus saya, saya melihat skrip berfungsi seperti yang diharapkan.

Apa yang berbeda dengan casing Anda? Pemasangan saya adalah pengaturan yang cukup default. Fakta bahwa Like '%google.com%' bekerja pada dataset Anda menyarankan beberapa hal. Orang-orang telah menyarankan TRIM , karena ekspresi Suka akan cocok dengan karakter yang tidak terlihat (spasi, tab, spasi mundur, nol). MySQL memiliki operator terpisah REGEXP untuk ekspresi reguler, jadi sepertinya bukan . karakter sedang digunakan sebagai karakter pengganti, tapi itu mungkin layak untuk dilihat.

Buat database kosong dan coba jalankan skrip saya di atas. Apakah Anda mendapatkan hasil yang sama dengan saya?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Tampilkan status tabel, kenaikan otomatis tidak benar

  2. MySQL - Tidak Dapat Membuat Tampilan dengan variabel SET di dalamnya

  3. Serangan injeksi SQL dengan php

  4. MYSQL cara membuka kunci tabel jika saya menggunakan perintah LOCK table table_name MENULIS;

  5. Mysql_real_escape_string() Tautan ke server tidak dapat dibuat