目前,我正在使我的网站应用程序验证郊区值,并确保它存在于数据库数据中。MySQL:如何提高我的查询?
这里是我的MySQL表
CREATE TABLE IF NOT EXISTS `postcodeTable` (
`id` int(11) NOT NULL,
`postcode` varchar(50) NOT NULL,
`suburb` text NOT NULL,
`state` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用户输入2个变量,是国家和郊区变量。
这是我的SQL语句,以检查是否此行存在:
“从postcodeTable选择*其中状态= '”。$状态 “ '和郊区LIKE' %” $郊区 “%'” ;
这里是我的示例表数据
Row1 id:1 postcode:3794 suburb: BANGHAM,BORDERTOWN,CANNAWIGARA,LOWAN, state: SA
Row2 id:2 postcode:6627 suburb: CANNA, state: WA
当用户输入郊区美人蕉状态SA它与MySQL声明这是不正确匹配。
它匹配因为LIKE语句,因为'CANNA'字在CANNAWIGARA郊区名称中。
这是不正确的,因为CANNA郊区只存在于WA状态。
有没有办法使LIKE语句更加智能,可以通过郊区字符串并确保它只与整个郊区名称匹配?
非常感谢!
'我刚刚意识到,如果我只是在郊区输入字段中添加一个逗号,就可以解决问题。“事实上,这**造成问题**而不是解决主要问题。有了这些怪癖,你的代码将难以理解/维护/发展。 – 2011-03-13 13:17:10
Ey,这是我在我的答案中建议的!你应该接受它(虽然我知道它是越野车) – 2011-03-31 21:50:47