UPDATE:OP had onzichtbare nieuweregeltekens (\n) in zijn dataset. @EternalPoster (en ik) veronderstelden dat Trim alle witruimte zou verwijderen , maar MySql Trim-documentatie specificeert voorloop- en achterliggende alleen spaties .
Dit is wat ik deed:
-- 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'
;
en dit is wat ik kreeg:
Dus in mijn geval zie ik dat het script werkt zoals verwacht.
Wat is er anders aan uw geval? Mijn installatie is vrij standaard ingesteld. Het feit dat Like '%google.com%'
werkt op uw dataset suggereert een aantal dingen. Mensen hebben TRIM
al voorgesteld , omdat de Like-expressie zou overeenkomen met onzichtbare tekens (spaties, tabs, backspaces, nulls). MySQL heeft een aparte operator REGEXP
voor reguliere expressies, dus het lijkt er niet op dat de .
karakter wordt gebruikt als jokerteken, maar dat is misschien het bekijken waard.
Maak een lege database en probeer mijn script hierboven uit te voeren. Krijg je hetzelfde resultaat als ik?