sql >> Database >  >> RDS >> Mysql

Sql waar clausule niet werkt

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?



  1. Hoe een schema in postgres selecteren bij gebruik van psql?

  2. hoe ziet een B-tree index op meer dan 1 kolom eruit?

  3. Verbind en verwerk Oracle-gegevens van Objective-C op Mac OS

  4. TO_DATE() Functie in Oracle