Golden Basim Ответов: 1

В хранимой процедуре mysql как настроить предложение where в качестве выбора пользователей ?


привет,
в хранимой процедуре MySQL как настроить предложение Where в качестве выбора пользователей ?

экс:
я хочу, чтобы пользовательский фильтр с пользовательскими полями (5 или более) был следующим: :
- поиск по имени ? (флажок)
-- имя текстового поля = ....

- поиск с датой ? (флажок)
-- from datetime input = ....
-- to datetime input = ....

- поиск с помощью itemname ? (флажок)
-- имя текстового поля = ....

Что я уже пробовал:

теперь я использую entity framework в качестве этого кода, но я чувствую, что это медленно, поэтому я хочу сделать то же самое в SP.

var pQuery = DB2.sales_main.OrderByDescending(o => o.smain_ID).Where(u => u.smain_Type == 0);
                    if (checkName.Checked)
                    {
                        pQuery = pQuery.Where(u => (u.cust_ID == Customer && u.smain_Type == 0));
                    }
                    if (checkDate.Checked)
                    {
                        pQuery = pQuery.Where(u => (u.smain_Date >= From && u.smain_Date <= To ));
                    }
                    if (checkItem.Checked)
                    {
                        pQuery = pQuery.Where(u => (u.sales_item.Where(i => i.stitems_ID == item).Count() > 0));
                    }
                    if (checkPaymentMethod.Checked)
                    {
                        if (PaymethodToggle.IsOn)
                        { pQuery = pQuery.Where(u => u.smain_ReminValue == 0); }
                        else { pQuery = pQuery.Where(u => u.smain_ReminValue > 0); }
                    }
                    if (checkUserName.Checked)
                    {
                        pQuery = pQuery.Where(u => (u.r_user_ID == user && u.smain_Type == 0));
                    }

                    var payRes = Paging.GetPaged(pQuery, GoToPage, paging1.Count_Per_Page);

1 Ответов

Рейтинг:
1

#realJSOP

MySQL не делает динамический sql, как это делает SQL server. Однако вы можете сделать подготовленные заявления.

Google "mysql подготовил заявление".