CẬP NHẬT:OP có các ký tự dòng mới ẩn (\ n) trong tập dữ liệu của mình. @EternalPoster (và tôi) cho rằng Trim sẽ xóa tất cả khoảng trắng , nhưng Tài liệu Cắt tỉa MySql chỉ định chỉ khoảng trắng đầu &cuối .
Đây là những gì tôi đã làm:
-- 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'
;
và đây là những gì tôi nhận được:
Vì vậy, trong trường hợp của tôi, tôi thấy tập lệnh hoạt động như mong đợi.
Trường hợp của bạn có gì khác? Cài đặt của tôi là cài đặt khá mặc định. Thực tế là Like '%google.com%'
hoạt động trên tập dữ liệu của bạn gợi ý một vài điều. Những người đã đề xuất TRIM
, bởi vì biểu thức Like sẽ khớp với các ký tự không nhìn thấy (dấu cách, tab, dấu cách lùi, null). MySQL có một toán tử riêng REGEXP
đối với biểu thức chính quy, vì vậy, có vẻ như không phải là .
ký tự đang được sử dụng làm ký tự đại diện, nhưng điều đó có thể đáng xem.
Tạo một cơ sở dữ liệu trống và thử chạy tập lệnh của tôi ở trên. Bạn có nhận được kết quả giống như tôi làm không?