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?