MySQL популярный поисковый запрос, как добавить для подсчета вместо вставки нового, если поиск уже существует? - PullRequest
0 голосов
/ 16 января 2011

URL для справки: jobs.sitesixteen

В настоящее время у меня есть запрос, который запускается каждый раз, когда выполняется поиск работы, который добавляет этот поиск работы в search_performedТаблица.Это вставляет штраф:

INSERT INTO `searches_performed`
            (`state`,
             `city`,
             `distance`,
             `term`,
             `description`,
             `telecommute`)
VALUES      ( 'NY',
              'New York',
              '100',
              'web design',
              '1',
              '1' ) 

В этой таблице также есть столбец 'count' со значением по умолчанию 1.

Моя цель - без помощи Php и нескольких запросов- проверьте, существует ли поиск, который я намереваюсь вставить, и если нет, добавьте его.Если поиск, который я собираюсь вставить, существует, я просто хотел бы добавить 1 к столбцу 'count' в этой строке.

Как всегда, любая помощь приветствуется.

Ответы [ 3 ]

2 голосов
/ 16 января 2011

Вы можете использовать: INSERT ... ON DUPLICATE KEY UPDATE

Т.е.: определить первичный ключ в полях поиска и затем использовать

INSERT INTO `searches_performed`
            (`state`,
             `city`,
             `distance`,
             `term`,
             `description`,
             `telecommute`)
VALUES      ( 'NY',
              'New York',
              '100',
              'web design',
              '1',
              '1' ) 
ON DUPLICATE KEY UPDATE counts=counts+1;
0 голосов
/ 16 января 2011

Вы можете сделать это, используя INSERT ... ON DUPLICATE KEY UPDATE .Вы должны сделать ключевые слова для поиска ключевыми.См. Страницу выше для примеров.

0 голосов
/ 16 января 2011

Это срабатывает только в случае дублирования уникального индекса

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...