Как Вы ЗАКАЗЫВАЕТЕ заголовком в mysql, игнорируя слово?

Попробуйте это из командной строки. Это сработало для меня, когда я получил такое же сообщение об ошибке на Mac Mojave:

R CMD INSTALL sf_0.7-4.tar.gz --configure-args='-with-gdal-config=/Library/Frameworks/GDAL.framework/Versions/2.4/unix/bin/gdal-config -with-geos-config=/Library/Frameworks/GEOS.framework/Versions/3B/unix/bin/geos-config --with-proj-include=/Library/Frameworks/PROJ.framework/unix/include --with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'

Вам нужно будет подтвердить расположение gdal-config, geos-config, include и lib для PROJ. и ваши последние версии для каждой установки и файл .tar.gz. Я нашел похожую проблему и ответ здесь

8
задан William Brendel 30 March 2009 в 00:05
поделиться

6 ответов

Если Вы будете собираться быть выполнением этого запроса часто, то Вы захотите создать отдельное поле в таблице с 'отсортированным' именем. Используя регулярные выражения или другие операции лишают возможности MySQL использовать в своих интересах индекс.

Так, самое простое и наиболее эффективное решение состоит в том, чтобы заставить Ваш добавлять a movie_title_short поле, которое содержит movie_title без или "A". Обязательно добавьте индекс к movie_title_short поле также!

17
ответ дан 5 December 2019 в 06:24
поделиться

Можно использовать функцию замены mysql в избранном пункте...

 select replace(movie_title,'The ','') from ... order by replace(movie_title,'The ','')'
1
ответ дан 5 December 2019 в 06:24
поделиться

Как Carl сказал, я встрою это в его собственное индексируемое поле, чтобы избежать необходимости вычислять его каждый раз. Я рекомендовал бы делать его немного отличающимся способом избежать дублирования все же.

movies (id, name, namePrefix)

например:

| Dark Knight        | The |
| Affair To Remember | An  |
| Beautiful Mind     | A   |

Таким образом, можно показать эти фильмы двумя различными способами: "name, namePrefix" или "namePrefix name" и может быть отсортирован соответственно.

6
ответ дан 5 December 2019 в 06:24
поделиться
select right(movie_title, char_length(movie_title)-4) as movie_title
from movies 
where left(movie_title,3) = 'the'
union
select movie_title
from movies
1
ответ дан 5 December 2019 в 06:24
поделиться

Используйте это:

SELECT * FROM movies ORDER BY TRIM(LEADING 'the ' FROM LOWER(`movie_title`));
0
ответ дан 5 December 2019 в 06:24
поделиться

Я только что столкнулся с этой проблемой ... решение:

SELECT * FROM movies WHERE title REGEXP '^d' AND title NOT REGEXP '^the ' OR title REGEXP '^the d'

это даст вам только результаты, начинающиеся с "D" или "D"

1
ответ дан 5 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: