Регулярное выражение между двумя конкретными межслоями [duplicate]

В MySQL есть два типа кавычек:

  1. ' для включения строковых литералов
  2. ` для включения идентификаторов, таких как имена таблиц и столбцов

И тогда есть ", который является частным случаем. Он может быть использован для one вышеупомянутых целей за раз в зависимости от сервера MySQL sql_mode :

  1. By по умолчанию символ " может использоваться для вложения строковых литералов точно так же, как '
  2. В режиме ANSI_QUOTES символ " может использоваться для заключите идентификаторы так же, как `

Следующий запрос приведет к различным результатам (или ошибкам) ​​в зависимости от режима SQL:

SELECT "column" FROM table WHERE foo = "bar"

ANSI_QUOTES disabled

Запрос будет выбирать строковый литерал "column", где column foo равен строке "bar"

ANSI_QUOTES enabled

В запросе будет выбран столбец column где столбец foo равен столбцу bar

. Когда использовать

  • , я предлагаю вам избегать использования ", чтобы ваш код не зависел от SQL mode
  • Всегда указывайте идентификаторы, так как это хорошая практика (довольно много вопросов о SO обсуждают это)

25
задан rudolph9 30 April 2014 в 16:45
поделиться

11 ответов

5
ответ дан AD7six 23 August 2018 в 22:24
поделиться
13
ответ дан aliteralmind 23 August 2018 в 22:24
поделиться
1
ответ дан Braj 23 August 2018 в 22:24
поделиться
74
ответ дан Community 23 August 2018 в 22:24
поделиться

Зачем использовать Regex только для проверки числа?

int n = -2000;

if(n >= -2055 && n <= 2055)
//Do something
else
//Do something else
3
ответ дан Oscar Bralo 23 August 2018 в 22:24
поделиться
3
ответ дан PlasmaPower 23 August 2018 в 22:24
поделиться
5
ответ дан SebastianH 23 August 2018 в 22:24
поделиться
0
ответ дан SF Lee 23 August 2018 в 22:24
поделиться
0
ответ дан sln 23 August 2018 в 22:24
поделиться
3
ответ дан Wiktor Stribiżew 23 August 2018 в 22:24
поделиться
4
ответ дан zx81 23 August 2018 в 22:24
поделиться
Другие вопросы по тегам:

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