अद्यतन:ओपी के डेटासेट में अदृश्य न्यूलाइन वर्ण (\ n) थे। @EternalPoster (और मैं) का मानना था कि ट्रिम सभी व्हाइटस्पेस को हटा देगा , लेकिन MySql Trim Documentation अग्रणी और अनुगामी केवल रिक्त स्थान . निर्दिष्ट करता है ।
मैंने यही किया:
-- 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'
;
और यही मुझे मिला:
तो मेरे मामले में, मुझे उम्मीद के मुताबिक स्क्रिप्ट काम कर रही है।
आपके मामले में क्या अलग है?मेरा इंस्टालेशन काफी डिफ़ॉल्ट सेटअप है। तथ्य यह है कि Like '%google.com%'
आपके डेटासेट पर काम करने से कुछ बातें पता चलती हैं। लोगों ने पहले ही TRIM
. का सुझाव दिया है , क्योंकि लाइक एक्सप्रेशन अदृश्य वर्णों (रिक्त स्थान, टैब, बैकस्पेस, नल) से मेल खाएगा। MySQL का एक अलग ऑपरेटर है REGEXP
रेगुलर एक्सप्रेशन के लिए, इसलिए ऐसा नहीं लगता कि .
चरित्र का उपयोग वाइल्डकार्ड के रूप में किया जा रहा है, लेकिन यह देखने लायक हो सकता है।
एक खाली डेटाबेस बनाएं और ऊपर मेरी स्क्रिप्ट चलाने का प्रयास करें। क्या आपको वही परिणाम मिलता है जो मैं करता हूँ?