MySQL - Как заказать по релевантности? Таблица INNODB

Существуют несколько действительно, действительно старые приемы, которые я удивлен не видеть здесь.

atan (1) == PI/4, таким образом, старая история, когда защищенная функция арктангенса присутствует, 4*atan (1).

очень милый А, оценка фиксированного отношения, которая заставляет старый Западный 22/7 быть похожим на грязь, является 355/113, который хорош к нескольким десятичным разрядам (по крайней мере три или четыре, я думаю). В некоторых случаях это даже достаточно хорошо для целочисленной арифметики: умножьтесь на 355, тогда делятся на 113.

355/113 также легко запомнить (для некоторых людей так или иначе): считайте один, один, три, три, пять, пять и помните именование цифр в знаменателе и числителе (если Вы забываете, какой триплет идет на вершину, мысль микросекунды обычно собирается выяснить его).

Указание, которое 22/7 дает Вам: 3.14285714, который является неправильным в тысячных частях.

355/113 дает Вам 3.14159292, который не является неправильным до этих десяти миллионных частей.

Acc. к/usr/include/math.h на моем поле, M_PI является #define'd как: 3.14159265358979323846, который, вероятно, хорош, насколько это идет.

урок Вы добираетесь от оценки, что PI - то, что существует много способов сделать его, ни один никогда не будет прекрасен, и необходимо уладить их надлежащим использованием.

355/113 является старой китайской оценкой, и я полагаю, что он предшествует 22/7 на многие годы. Этому преподавал меня преподаватель физики, когда я был старшекурсником.

34
задан Old Pro 24 January 2019 в 06:45
поделиться

1 ответ

версия 1:

SELECT max(id) id, name
  FROM cards
 WHERE name like '%John%'
 GROUP BY name
 ORDER BY CASE WHEN name like 'John %' THEN 0
               WHEN name like 'John%' THEN 1
               WHEN name like '% John%' THEN 2
               ELSE 3
          END, name

версия 2:

SELECT max(id) id, name
  FROM cards
 WHERE name like '%John%'
 GROUP BY name
 ORDER BY CASE WHEN name like 'John%' THEN 0
               WHEN name like '% %John% %' THEN 1
               WHEN name like '%John' THEN 2
               ELSE 3
          END, name
111
ответ дан 27 November 2019 в 16:03
поделиться
Другие вопросы по тегам:

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