sql >> Databasteknik >  >> RDS >> Mysql

SQL där klausul inte fungerar

UPPDATERING:OP hade osynliga nyradstecken (\n) i sin datauppsättning. @EternalPoster (och jag) antog att Trim skulle ta bort alla blanksteg , men MySql Trim Documentation anger inledande och efterföljande endast mellanslag .

Det här är vad jag gjorde:

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

och det här är vad jag fick:

Så i mitt fall ser jag att skriptet fungerar som förväntat.

Vad är annorlunda med ditt fall? Min installation är en ganska standardinställning. Det faktum att Like '%google.com%' fungerar på din datauppsättning föreslår ett par saker. Folk har redan föreslagit TRIM , eftersom Like-uttrycket skulle matcha osynliga tecken (mellanslag, tabbar, backsteg, nollor). MySQL har en separat operatör REGEXP för reguljära uttryck, så det verkar inte vara så att . karaktär används som jokertecken, men det kan vara värt att titta på.

Skapa en tom databas och försök köra mitt skript ovan. Får du samma resultat som jag?



  1. Välja och konfigurera maskinvara för SQL Server 2016 Standard Edition

  2. Kan inte lägga till fält...radstorlek...större än högsta tillåtna storlek

  3. PostgreSQL, kan inte uppdatera rad (med säkerhet på radnivå)

  4. MySQL mycket långsam för ändringstabellfråga