【发布时间】:2013-09-13 15:19:16
【问题描述】:
在我的 android 应用程序中,我有一个搜索字段,用户可以在其中输入内容。他们可以在我的数据库中输入他们想要的任何内容,例如姓名、地址、电话号码、电子邮件等。
我希望它像谷歌搜索中的多合一搜索栏,以便他们可以键入名称和地址等内容的组合。
问题是我将如何进行搜索,其中搜索文本可以包含多个短语?
例如,如果用户搜索“Jack Daniel jdaniel@hotmail.com”,那么我希望 mysql select 语句最终是这样的:
select id from members
where firstname=`Jack` or firstname=`Daniel` or firstname=`jdaniel@hotmail.com`
or lastname=`Jack` or lastname=`Daniel` or lastname=`jdaniel@hotmail.com`
or email=`Jack` or email=`Daniel` or email=`jdaniel@hotmail.com`
基本上搜索文本的每个短语都需要与所有列进行比较。
MySQL 是否有内置机制可以轻松做到这一点,还是我必须在 java 中解析字符串并手动构建 sql 语句?
谢谢
【问题讨论】:
-
您可能需要在转到 SQL 之前进行解析,例如对于电子邮件,如果可以在搜索短语的任何位置输入或不输入,则需要在本地解析它。除了用户可以执行的格式之外,您无法区分什么是名称或地址,因此您可能需要在其他字段中进行搜索。
标签: java mysql database search