как прочитать текущее значение в sql - PullRequest
0 голосов
/ 03 апреля 2012

я создал функцию поиска:

SELECT
    tbl_place.id AS id, 
    tbl_place.metalink AS metalink, 
    tbl_place.title AS title, 
    tbl_place.img_thumbnail AS img_thumbnail, 
    tbl_place.category1_id AS category1_id, 
    tbl_place.category2_id AS category2_id, 
    tbl_place.category3_id AS category3_id, 
    tbl_place.region_id AS region_id, 
    tbl_place.subregion_id AS subregion_id, 
    tbl_place.summary AS summary, 
    (SELECT COUNT(tbl_place.title) FROM tbl_place) AS total_show_up
FROM tbl_place 
WHERE 
    tbl_place.title LIKE '%$keywords[0]%' AND
    tbl_place.title LIKE '%$keywords[1]%'

, если я буду искать по ключевым словам: "Pizza Store", он отобразит что-то вроде этого:

* Pizza Store
* Pizza Store Manhattan
* Pizza Store California
* Pizza Store California
* Pizza Store Texas
* Pizza Store California

И что я хочуdo также подсчитайте, сколько раз будет отображаться каждый файл tbl_place.title, пока запрос все еще выполняет поиск по ключевым словам.Я хочу, чтобы результат стал таким:

* Pizza Store - showed 1 time
* Pizza Store Manhattan - showed 1 time
* Pizza Store California - showed 3 times
* Pizza Store California - showed 3 times
* Pizza Store Texas - showed 1 time
* Pizza Store California - showed 3 times

Существует ли какой-либо синтаксис для чтения текущего значения tbl_place во время SELECT-ing?

Я полагаю, что я что-то изменил в этой части запроса:

(SELECT COUNT(tbl_place.title) FROM tbl_place) AS total_show_up

1 Ответ

2 голосов
/ 03 апреля 2012

Попробуйте такой подход:

SELECT
   p1.title, pj.total
FROM 
   pizza p1
JOIN 
   (
    SELECT 
       p2.title title, COUNT(p2.id) total
    FROM pizza p2 
    WHERE p2.title LIKE '%Pizza%' AND p2.title LIKE '%Store%'
    GROUP BY p2.title
   ) AS pj
ON p1.title=pj.title
...