Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL gdzie klauzula nie działa

AKTUALIZACJA:OP miał niewidoczne znaki nowej linii (\n) w swoim zbiorze danych. @EternalPoster (i ja) przypuszczaliśmy, że Trim usunie wszystkie białe znaki , ale Dokumentacja MySql Trim określa początkowe i końcowe tylko spacje .

Oto co zrobiłem:

-- 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'
;

i oto, co mam:

Więc w moim przypadku widzę, że skrypt działa zgodnie z oczekiwaniami.

Co jest innego w twoim przypadku?Moja instalacja jest dość domyślną konfiguracją.Fakt, że Like '%google.com%' działa na Twoim zbiorze danych sugeruje kilka rzeczy. Ludzie już zasugerowali TRIM , ponieważ wyrażenie Like pasowałoby do niewidocznych znaków (spacji, tabulatorów, spacji, wartości null). MySQL ma oddzielny operator REGEXP dla wyrażeń regularnych, więc nie wydaje się, że . znak jest używany jako symbol wieloznaczny, ale może to być warte obejrzenia.

Utwórz pustą bazę danych i spróbuj uruchomić powyższy skrypt. Czy otrzymujesz ten sam wynik co ja?



  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 Obejście błędu 1093

  2. Problem z pobieraniem wartości Null przez MySQLDataReader w c#

  3. Wystąpił błąd:SQLSTATE[HY000] [2005] Nieznany host serwera MySQL

  4. SELECT INTO OUTFILE odmowa uprawnień, ale użytkownik może pisać do katalogu

  5. Funkcja PHP do ucieczki ze składni wyrażenia regularnego MySQL