Можно ли выбрать одну строку в MySQL, а затем пропустить 4 строки, а затем пропустить 3 строки, а затем пропустить 5 строк, а затем закодировать это до конца таблицы?Выбирайте несколько строк с разными интервалами
Я нашел несколько учебников LIMIT и OFFSET онлайн, они работают, но хороши только для одного из установленных. Мне нужно несколько.
У меня в настоящее время эта настройка работает на PHP, но я чувствую, что мой PHP-код раздувается, потому что я знаю только базовый способ достижения этого.
Мой PHP код выглядит следующим образом
$int_count = 0;
$result = mysql_query("SELECT * FROM guitar_tunings_chords WHERE note_id >= '27'");
while ($row = mysql_fetch_array($result)) {
if ($int_count == 0)$n_1 = ($row["note"]);
if ($int_count == 4)$n_2 = ($row["note"]);
if ($int_count == 7)$n_3 = ($row["note"]);
if ($int_count == 12)$n_4 = ($row["note"]);
if ($int_count == 16)$n_5 = ($row["note"]);
if ($int_count == 19)$n_6 = ($row["note"]);
if ($int_count == 24)$n_7 = ($row["note"]);
if ($int_count == 28)$n_8 = ($row["note"]);
if ($int_count == 31)$n_9 = ($row["note"]);
if ($int_count == 36)$n_10 = ($row["note"]);
if ($int_count == 40)$n_11 = ($row["note"]);
if ($int_count == 43)$n_12 = ($row["note"]);
if ($int_count == 48)$n_13 = ($row["note"]);
if ($int_count == 52)$n_14 = ($row["note"]);
$int_count++;
}
То, что я пытаюсь сделать, это выбрать только мажорное трезвучие заметки из крупных масштабах.
Мне нужно иметь возможность выбрать базовую ноту из таблицы, а затем выбрать с 3 различными интервалами для создания аккордов.
Update
$result2 = mysql_query("SELECT *
FROM `guitar_tunings_links`
JOIN guitar_tunings_chords ON guitar_tunings_links.".$funtion_string." = guitar_tunings_chords.note
WHERE tuning = '".$chrd_tn."'") or die(mysql_error());
while ($row = mysql_fetch_array($result2)) {
$bridge_note = ($row["note_id"]);
}/*
var_dump ($key_note);
var_dump ($bridge_note);
var_dump ($funtion_string);
var_dump ($chrd_tn);*/
// SELECT * FROM `guitar_tunings_chords` WHERE `note_id` >= 28 LIMIT 0,8
$result4 = mysql_query("SELECT * FROM `guitar_tunings_chords` WHERE `note_id` >= ".$bridge_note." LIMIT ".$tuning_capo.",8") or die(mysql_error());
while ($row = mysql_fetch_array($result4)) {
//Notes
$note = ($row["note"]);
// Replace # with z
$note = str_replace("#", "z", $note);
// Distinguish nut notes on or off
if (preg_match("/\b".$note."\b/i", $notes_array)) {
$n_nut_style = 'note_nut_on';
} else { $n_nut_style = 'note_nut_off';
}
// Distinguish fretboard notes on or off
if (preg_match("/\b".$note."\b/i", $notes_array)) {
$n_style = 'note_on';
} else { $n_style = 'note_off';
}
Я знаю PHP, но я понятия не имею о гитарных аккордах. Думаю, вам стоит подробнее остановиться на этой части. – Hubro
Вы можете изменить смещение и отправить запрос еще раз –
1. Вам, вероятно, следует предпочесть * массив * или какой-либо другой сложный тип данных, а не scads индексированных суффиксных переменных. Например, 'array_push ($ notes, $ row [" note "])'. 2. Вы должны ЗАКАЗАТЬ, что запрос явно, а не полагаться на двигатель, случайно выбирающий нужный вам заказ, даже если это происходит как «неявно детерминированная авария». – pilcrow