【发布时间】:2015-03-20 15:37:39
【问题描述】:
我正在尝试使用 LEFT JOIN 对 2 个表进行 MATCH
`jos_application_listing` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`description` text NOT NULL,
`headline` text NOT NULL,
`city` bigint(20) NOT NULL,
`state` varchar(500) NOT NULL,
`country` varchar(500) NOT NULL,
`features` text NOT NULL,
`listing_type` bigint(20) NOT NULL,
`phone` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`website` varchar(1000) NOT NULL,
`pictures` mediumtext,
`address` varchar(100) NOT NULL DEFAULT '',
`postal` varchar(25) NOT NULL DEFAULT '',
`category` bigint(20) NOT NULL,
`sub_category` bigint(20) NOT NULL,
`latitude` float NOT NULL,
`longitude` float NOT NULL,
`listing_expire` varchar(255) NOT NULL DEFAULT 'normal',
`featured_till` datetime NOT NULL,
`facebook` text NOT NULL,
`video` text NOT NULL,
`video_size` text NOT NULL,
`business_hours` text NOT NULL,
`published` tinyint(4) NOT NULL,
`featured` tinyint(4) NOT NULL,
`UID` bigint(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
`jos_application_cities` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`city` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM CHARSET=utf8;
索引 -> > >
我在 jos_application_listing 上有一个全文索引(名称、标题、描述)
与
我在 jos_application_cities(城市)上有一个全文索引
查询 -> > >
SELECT * FROM jos_lnzon_listing
LEFT JOIN jos_lnzon_cities ON jos_lnzon_listing.city = jos_lnzon_cities.id
WHERE MATCH (name,headline,description,jos_lnzon_listing.city)
AGAINST ('" . $searchQuery . "' IN BOOLEAN MODE)";
我看不到问题,但我收到以下错误:
1271 - 操作 'match' SQL=SELECT * FROM jos_lnzon_listing LEFT JOIN jos_lnzon_cities ON jos_lnzon_listing.city = jos_lnzon_cities.id WHERE MATCH (name,headline,description,jos_lnzon_listing.city) AGAINST ('+search term) 的排序规则的非法混合' 在布尔模式下)
【问题讨论】:
-
当您使用主题标签作为全局前缀时,表前缀后仅使用 2 个下划线。例如
#__lnzon_listing,这是推荐的查询方法。如果你手动定义前缀(不推荐),那么它只需要1个下划线,就像这样,jos_lnzon_listing -
嗨对不起错字,修复 - 我确实在 Joomla 中使用 #__lnzon_listing,但只是为了阅读我使用 jos_ 的问题
标签: mysql