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

0

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".

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

Теги:
if-statement

3 ответа

2
Лучший ответ

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

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

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
    Я закончил тем, что удалил расстояние, описание и дистанционный доступ со вставки и добавил уникальный ключ, который представляет собой md5 города, штата и названия. Спасибо.
0

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

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню