Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sql where mệnh đề không hoạt động

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?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trường LIKE chuỗi WHERE trong SQL

  2. Tương đương với php của @row:[email bảo vệ] +1 là gì

  3. Thứ tự MySQL theo cột =x, cột asc?

  4. Sai về độ chính xác thập phân của MySQL &PHP

  5. Thiếu kết nối cơ sở dữ liệu nhật thực