#mysql #regex
#mysql #регулярное выражение
Вопрос:
Я практиковал этот вопрос [Станция наблюдения за погодой 11], когда использовал
select distinct city
from station
where regexp_like(city, '^[^aeiou]|[^aeiou]
дал мне правильный ответ (458 результатов)
где
select distinct city
from station
where not regexp_like(city, '^[aeiou]|[aeiou]
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы...
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. ... Я узнал об этом и из других вопросов здесь.
5. @Meruemu - это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
regexp_like(city, '^[^aeiou]|[^aeiou]
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
not regexp_like(city, '^[aeiou]|[aeiou]
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
дал мне правильный ответ (458 результатов)
);
где
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы...
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. ... Я узнал об этом и из других вопросов здесь.
5. @Meruemu - это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы...
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. ... Я узнал об этом и из других вопросов здесь.
5. @Meruemu - это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);
дал мне правильный ответ (458 результатов)
где
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы...
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. ... Я узнал об этом и из других вопросов здесь.
5. @Meruemu - это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
)
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);
дал мне правильный ответ (458 результатов)
где
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);дал мне правильный ответ (458 результатов)
где
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
)
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);
дал мне правильный ответ (458 результатов)
где
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);дал мне правильный ответ (458 результатов)
где
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
)
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);дал мне правильный ответ (458 результатов)
где
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.
);
дал мне правильный ответ (458 результатов)
где
дал мне неправильный ответ (299 результатов).
Я чувствовал, что и '^[^aeiou]'
то, и NOT '^[aeiou]'
другое должно было дать мне не начинать с результатов aeiou, но, по-видимому, нет. В чем логические различия между этими двумя ответами?
Комментарии:
1. @buddemat что насчет этого? Это дает вам результаты, начинающиеся с гласной ИЛИ заканчивающиеся гласной.
2. Извините, я должен был написать больше объяснений. Моя точка зрения была такой же, как и в ответе ниже, просто добавил круглые скобки, чтобы указать, что второе значение равно ИЛИ, а отрицание становится И . Я планировал написать больше, но был в автобусе и внезапно понял, что мне нужно выйти. В любом случае, поскольку вы получили хороший ответ, я удалю свои комментарии, чтобы избежать путаницы…
3. Какую версию вы используете? Я не знаю
regexp_like()
.4. @RickJames я проходил онлайн-практику на HackerRank. Так что, вероятно, не связано с версией. regexp_like() здесь dev.mysql.com/doc/refman/8.0/en /. … Я узнал об этом и из других вопросов здесь.
5. @Meruemu — это новое в версии 8.0. (В более старых версиях это не было такой функции).
Ответ №1:
Они выглядят одинаково, но они разные.
Это вернет совпадение, если a city
начинается ИЛИ заканчивается согласной (не гласной).
Однако:
вернет совпадение, если a city
не начинается и не заканчивается гласной
, или, другими словами, вернет совпадение, если a city
начинается и заканчивается согласной (не гласной).
Обратите внимание на различия между OR
и AND
в обоих выражениях, что приведет к большему количеству совпадений в первом выражении, чем во втором.