2012-02-27 2 views
0

Я загрузил огромное количество строк (более 98 000) из Министерства сельского хозяйства США о классификации растений.Как обновить новый столбец, чтобы быть первым словом другого столбца

Однако при ближайшем рассмотрении выясняется, что они не предложили столбец Genus или Species.

После некоторого изучения выясняется, что Genus всегда равен первому слову в научном названии, а второе слово - Species.

Я использовал следующий запрос, чтобы поднять правильную информацию, которую я хочу разместить в столбце Genus. Но я застрял в том, как ОБНОВИТЬ каждую строку на основе другого столбца в той же строке.

SELECT SUBSTRING_INDEX(`Scientific Name with Author` , ' ', 1) AS `Genus` 
FROM `plants` 

Я бы очень хотел, чтобы быть в состоянии выполнить этот запрос, используя только MySQL и не придется прибегать к PHP, которая является моим коленным рефлексом.

Любое направление будет оценено, вот пример приведенной ниже таблицы.

enter image description here

ответ

3

UPDATE почти идентичен SELECT:

UPDATE my_table 
SET Genus=SUBSTRING_INDEX(`Scientific Name with Author` , ' ', 1) 
+0

Я пытаюсь запустить это прямо сейчас. Раньше я этого не замечал, но таблица такая большая, кажется, что мой сервер борется с обновлением, и он работает последние 2 минуты. –

+0

ewwww, это позор :(Это правильный синтаксис для того, что вы хотите сделать, но как его ускорить - вам, возможно, придется просто подождать, так как это один раз. –

+0

Да, вы правы , большое вам спасибо за вашу помощь. Терпение - это добродетель. –

Смежные вопросы